Vue中的组件基本使用

107 阅读2分钟

heybro,是不是忘记了Vue中组件的创建和使用呢,看这一篇,让你回顾组件的知识

组件的定义——实现应用中局部功能代码和资源的集合

image.png

非单文件组件:

一个文件中包含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:'北京昌平'
            }
        }
     })