如何创建一个Vue组件_如何在Vue中编写一个组件

频道:百科知识 日期: 浏览:0

Bitget下载

注册下载Bitget下载,邀请好友,即有机会赢取 3,000 USDT

APP下载   官网注册

很多朋友在找币网的时候会问如何重新创建一个vue组件,如何编写一个Vue组件,可见有人不';你对这个问题不太了解,是吗?那么vue是什么,怎么写组件呢?接下来,边肖将带你了解更多。!

1一般在vue中,会有很多vue组件,每个组件都是一个文件。可能需要引用同一个模块(或插件)。我们不';我不想为每个文件导入一次模块。

如果是基于vue.js的插件,我们可以使用vue.use(…)

main.js

2但是如果我们要添加一个全局命令,让每个vue文件同时可用呢?

第一步:最好创建一个全局命令文件,比如directive/directive.js

第二步:使用Vue.directive()创建一个全局命令,并将其公开。比如一个焦点使窗体自动聚焦

directional.js

第三步:在main.js(入口JS文件)中引入,可以省略文件后缀

main.js

只要任何一个Vue文件都有这样的v-focus(命令名),使用

3Vue.directive()的命令都可以非常方便,这些命令一般是自动操作或者初始化触发的,不能用于异步事件。,我该怎么办?

这样我们就可以使用';mixins'混合命令。你';d最好创建一个专门的文件夹来存储混合命令,比如

mixins.js

比如saveScrollPosition(不是vue中的saveScrollPosition)可以保存每次路由跳转之间的浏览位置信息

注意:在vue2.0中,路由跳数之间会自动保存位置信息,但是有一个Bug(位置信息会互相干扰)。

所以我们写了一个新的saveScrollPosition并公开了它。,在你需要的页面中混合

,会很方便。

4如果你需要应用一个插件,并且不是基于Vue.js的插件命令编写的,可以给vue

的原型。

例如,我想对axios进行全球报价。我们可以做这个

main.js

然后这个。$http.get(url)等等

xxx.vue

5将所需变量挂在窗口对象上

例如第三方库Lodash.js、moment.js等等

main.js

XXX.vue

注意:这个方法不适合服务器端渲染,服务器端不';没有窗口对象

。需要强调的是,以上所有导入都必须通过JS文件进行,这样才能应用到全局

通过ref获取页面上的dom。

如果在组件项中添加了一个引用,那么得到的dom就是对应的组件,即可以得到组件的引用。

数据可以获取组件中定义的数据

父组件通过属性将值传递给子组件。将

中的值分配给定义的值,然后修改该值。

子组件通过事件触发将值

传递给父组件,以定义全局组件

父组件通过属性传递一些值给子组件,子组件做的一些约束是组件的参数验证

父组件要传递一个名为content的属性,子组件只是定义内容的属性。这是道具特性

非道具特性

比如在一个子组件的标签中定义一个点击事件

上面的实现是错误的。原因是子组件中定义的clickin@click是被监控的自定义事件的名称,是接收子组件触发的事件的名称,比如:this。$emit(';点击';),而@click收到这样的事件。,而不是大家熟知的点击事件

来实现上面的例子

方法一:

方法二

添加。原生点击可以标记为原生事件

。,使用Vuex

方法2,使用发布-订阅模式,也称为总线机制

如何让父组件优雅地将dom交付给子组件,比如父组件要将pDell/p

交付给子组件。按照以前的方法,应该是

slot可以解决问题

如果模板中有多个slot,如何确定哪个slot需要那些DOM

你可以通过它们的名称来确定对应的DOM,比如

如何通过动态组件实现

切换时,先销毁子组件再创建,

v-once每次切换时销毁并创建,就是为了避免这种情况。当你第一次使用v-once时,你会把组件放入内存,而你不会';不需要再次创建组件。可以直接从内存中读取

引用

Vue.jsAPI文档

海量开放在线课程网:Vue2.5开发去哪儿网App从零基础入门到实战项目

Vue很少在组件中创建,而是独立组件,然后互相调用。另一种是更加关注父子组件之间的数据绑定和关系。。您可以使用router-view或component标签来使用其他组件。强烈建议不要在组件中创建新组件,这违背了组件重用和隔离的优点。

原文:

以下为翻译文章。请留言纠正任何不准确之处。

当你只想重新渲染一个组件,或者破坏当前DOM重新开始的时候,Vue'的反应系统几乎毫无意义。如果你处于类似的情况,你会怎么做??

最有效的方法是为组件设置一个:key。当需要再次渲染这个组件时,只需要修改key的值即可。

不是';这不是一个相当简单的解决方案吗?

还有其他方法可以达到同样的效果:

如果你想强制重装或者更新,以下可能是更好的方法。

很有可能你对相面术的几件事感到困惑:

1。Vue's响应公式

2、计算属性

3、监听器

4、v-for未使用:key

这里有几个强制。大部分可以通过换键解决,技术原理在文末。

这类似于"每次你想退出应用程序时,都必须重启电脑。

我估计这种方法有时候可以很有效,但确实是一种不好的方法。这里什么都不用说了。唐';不要这样做。你可以看看其他更好的方法。

Vue';sv-if命令只有在为真时才会显示。,false将从DOM中删除,然后让';让我们看看如何做这件事。

流程分析:

1。初始化时,renderComponent的值为true,组件呈现

2。当我们调用forceRerender时,renderComponent会立即变为false,

3。此时,组件将停止渲染,因为值为false,

4。然后在下一个节拍将renderComponent的值设置回

5。现在组件将再次开始渲染

。以上过程主要有两点需要了解:

1。必须在下一个Tick之后更改,否则看不到效果

在Vue中,DOM的更新周期是一个tick,Vue会在同一个tick中收集更改。在节拍结束时,节点将根据更改后的值进行更新。如果我们直接更新变量的值,而不等待下一个tick,则不会触发节点的更新。

2。当我们重新渲染时,Vue会创建一个新的组件。。在销毁Vue之前重新创建一个新组件意味着新组件将再次经历生命周期。

相比之前的方法,这个方法也是官方支持的,而且更好。

正常情况下,Vue会根据依赖值的变化来更新界面,当然。如果调用forceUpdate,即使依赖值没有改变,也将强制更新。

这里';s一个问题:既然Vue可以根据值的变化自动更新,为什么我们还需要强制更新??这是因为有时候Vue'美国的反应系统将会混乱。我们认为Vue会根据一些属性或变量的值变化进行更新,但结果却不是,还有一些其他情况是响应系统无法检测到的。所以如果需要重新渲染组件,这种方式比较好。。

需要注意的是,forceUpdate只会强制更新页面,不会更新现有的计算属性。

在很多情况下,您可能需要重新渲染组件,以便更好地解决这个问题。我们将使用key属性,以便Vue可以将数据与组件相关联。如果密钥不改变,它将不会被更新。一旦密钥改变,Vue将淘汰旧的并创建新的组件。

在使用之前,让';让我们来看看为什么我们使用键!

当你理解了这个问题,你在如何正确的重新渲染组件上就会有很大的进步。

假设您要展示的组件列表具有以下一个或多个特征:

如果你排序或者更新这个列表,你需要重新渲染列表的部分界面,但是你没有';我不想重新呈现整个列表,而只是更新修改后的列表。

帮助Vue框架监控哪些值已经更改。,哪些值没有变化,我们提供key属性,因为列表中的特殊对象及其索引index没有绑定,

下面举个例子:

如果要按索引渲染,可以写:

如果我们删除莎拉,会得到如下结果:

虽然詹姆斯还是詹姆斯,但是与他相关联的指标发生了变化。詹姆斯将被重新渲染,虽然我们没有';我不想那样。

所以在这里,我们想使用一个唯一的ID,但我们最终生成了它。

在我们从列表中删除Sarah之前,Vue删除了另外两个组件,然后为James创建了一个组件。现在Vue知道Evan和James组件可以保留,唯一要做的就是删除Sarah's组件。

如果一个人被添加到列表中,它也知道它可以保留所有现有的组件。它只能创建一个新组件并将其插入正确的位置。这很有用,对我们帮助很大。很多时候,我们有更复杂的组件,它们有自己的状态,我们必须初始化逻辑或进行任何类型的DOM操作。

可能这个弯路没那么短。但是,有必要解释一下Vue的工作原理。

无论如何,让';让我们来谈谈强制重渲染的最佳方法!

Changethekeytoforcethecomponenttoberendered

Hereisaverybasicwaytodoit:

以上是如何重新创建vue组件以及如何在vue中编写组件的总结。更多关于如何在Vue中编写组件的知识,请关注我们,在网站首页搜索。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。

本文地址: http://www.lyw520.com/baikezhishi/36543.html
文章来源: 小美
如何创建一个Vue组件_如何在Vue中编写一个组件文档下载: PDF DOC TXT