Vue-第七天vue.js使用组件二

Posted 一步一步似爪牙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue-第七天vue.js使用组件二相关的知识,希望对你有一定的参考价值。

好想睡个安静的觉,然后认真地清醒一天,哪怕一天。


各种事,会让你迷失自己,迷失在失去自我的泥潭里,慢慢冲进深渊。


你可以做一只美妙的程序员,细心coding;也可以选择做一直美丽的金丝猴,尽情舞蹈。世界是自己的,找一颗宁静一下,找找自己,那点时刻是最美好的。


在这点时间里,我再耐心地分享一下上次学习到的组件这块的知识,因为组件是很vue中间很重的一部分,我们一定要耐心专研,才可能达到想要的效果。


一、 细说定义一个组件的步骤


直接上DEMO:



在图中的这个demo中,

1、先是用template标签定义了一个html模版

2、然后使用组件构造器Vue.extend()方法声明了一个组件对象,在这个组件中,包含了一个template的属性,其传值根据id选择器取值的template HTML模版的内容。

3、使用Vue.component()注册了上面定义的组件,并指定组件的标签

4、在Vue实例挂载的元素中使用上面定义的组件的标签,即可使用组件中模版定义内容。


二、 局部注册与全局注册差别


在上面的demo中,我是使用Vue.component直接注册了一个全局的组件。现在举一个例子,局部注册一个组件。

demo:

【Vue-第七天】vue.js使用组件二


实现的效果:

【Vue-第七天】vue.js使用组件二



从例子中可以看出来,定义一个全局的组件与一个局部的组件,差别在于:

定义全局变量在Vue.component()中定义,定义局部变量在创建的vue实例中定义。局部定义的组件只能在定义的vue实例挂载的元素范围内使用。



三、 定义父子组件


页面与页面之间嵌套关系是很正常的事,在一个模块中,嵌套另一个模块也是很正常的事,因此,父子组件,也是存在的。下面简单举个例子,简单说一说父子组件是怎么实现及调用的。


直接上demo:

html部分:

【Vue-第七天】vue.js使用组件二


js部分:


实现效果:





点击“显示子组件的数据”,会先后弹出:

'child component 111111'、'child component 222222'。



解析:

1、定义两个组件的模版,id分别为child-component1、

child-component2。并定义一个id为

parent-component的父组件模版,并在父组件模版中调用自组件定义的标签。


2、使用Vue.component()注册父组件,并再父组件中调用components属性注册两个子组件。在父组件中methods属性中定义一个方法,方法中,通过vue示例中的vm.$children属性访问子组件中的data--msg的值。


3、创建一个vue实例,在vue实例中挂在的el元素内引用父组件定义的标签,即可以引用父组件,已经实现父组件中嵌套的子组件。


两个组件之间,最繁琐的还在于传值,下一次,我们一起学习一下组件之间传值的问题。


以上是关于Vue-第七天vue.js使用组件二的主要内容,如果未能解决你的问题,请参考以下文章

Vue第七天学习笔记之vue-router详解

Vue第七天学习笔记之vue-router详解

Vue总结第七天~Promise网络请求和axios 网络模块

面试题打卡第七天(vue2 vue3 原理篇)- 双向数据绑定

实习第七天

TW实习日记:第七天