heybro,是不是忘记了Vue中组件的创建和使用呢,看这一篇,让你回顾组件的知识
组件的定义——实现应用中局部功能代码和资源的集合
非单文件组件:
一个文件中包含n个组件
单文件组件:
一个文件中只包含有一个组件
组件要想真正的使用往往要经历三个步骤:
①创建
创建的时候要用到Vue中的extend这个方法:
Vue.extend(options)
如下是一个组件的创建:
const school = Vue.extend({
//el:'#root',//组件定义时一定不要写el配置项,因为最终所有的组件都要被一个vm管理,由vm决定服务于哪个容器
data(){
return {
schoolName:'尚硅谷',
address:'北京昌平'
}
}
})
其中Vue.extend(options)和new Vue(options)时传入的那个options几乎一样,但是也有点区别:
1.el不要写,为什么 ——最终所有的组件都要经过一个vm的管理,由vm中的el决定服务哪个容器
2.data必须携程函数,为啥 ——避免组件被复用时候,数据存在引用关系
备注:使用template可以配置组件结构
②注册
(1)局部注册:注册组件的时候,需要借助Vue实例注册,因为只有在Vue实例之中才能使用el从而选中容器
具体代码如下:
new Vue({
el:'#root',
components:{
school:school,
student:student
}
其中值得注意的是components这个属性,这个单词的意思是组件的意思,只有在Vue中的components属性中,才能对已经创建好的组件进行注册,
components中采用键值对的形式来注册组件
简单来讲,局部注册依靠new Vue的时候传入components选项
(2)全局注册:
第一步:创建hello组件
const hello = Vue.extend({
template:`
<div>
<h2>你好啊!{{name}}</h2>
</div>
`,
data(){
return {
name:'Tom'
}
}
})
全局注册依靠Vue.component(‘组件名’,组件)来实现
第二步:全局注册组件
Vue.component('hello',hello)
③使用
注册完毕之后,若想要组件编程组件标签,则需要用template将组件信息以html+插值语法的方式放入组件当中:
const school = Vue.extend({
//el:'#root',//组件定义时一定不要写el配置项,因为最终所有的组件都要被一个vm管理,由vm决定服务于哪个容器
template:`
<div>
<h2>学校名称:{{schoolName}}</h2>
<h2>学校地址:{{address}}</h2>
</div>
`,
data(){
return {
schoolName:'尚硅谷',
address:'北京昌平'
}
}
})