一.如何创建Vue全局组件
- 特点:在任何一个Vue控制的区域都能使用
1.创建组件构造器
注意点:创建组件模板的时候只能用一个根元素
// 创建构造器
let Profile = Vue.extend({
template: `
我是描述信息
`,
})
2.注册已经创建好的组件
第一个参数:指定注册组件的名称
第二个参数:指定组件的构造器
Vue.component('abc', Profile)
3.使用注册好的组件
二.创建Vue全局组件的简写方式
- 第一种:注册组件,传入一个选项对象
- 第二种:
弊端:把模板编写在字符串模板中没有代码提示
- 第三种:
我是描述信息
三.如何创建Vue局部组件
- 特点:只能在自定义的那个Vue实例中使用
我是描述信息
四.自定义组件中data和methods和Vue实例中data和methods的区别
前提:
由于Vue实例控制的区域相当于一个大的组件, 在大组件中我们可以使用data和methods
而我们自定义的组件也是一个组件, 所以在自定义的组件中自然也能使用data和methods
- Vue实例中data和methods
{{appMsg}}
- 自定义组件中data和methods
{{abcMsg}}
为什么自定义组件中的data必须是一个函数?
自定义组件中的data如果不是通过函数返回的,那么如果同时使用多个相同的自定义组件,就会造成数据混乱的问题;
自定义组件中的data是通过函数返回的,那么每创建个新的组件,都会调用次这个方法将这个方法返回的数据和当前创建的组件绑定在一起,这样就有效的避免了数据混乱;
{{number}}
效果:
五.组件的切换
- 通过v-if/v-else来切换组件的显示隐藏
对于普通的元素我们可以通过v-if来实现切换,对于组件我们可以通过v-if来实现切换
因为组件的本质就是一个自定义元素
另外,通过v-if /v-else来切换组件不能保存组件的上一次的状态
我是首页
我是登录界面