VueComponent构造函数


    //创建school组件——注册给谁 在谁的结构上写
    const school = Vue.extend({
        name: 'school',//开发者工具的显示
        template: `
        <div>
            <h2>学校名称:{
     
     {schoolName}}</h2>
            <h2>学校地址:{
     
     {adress}}</h2>  
        </div>
        `,//结构
        data() {
            return {//防止相同对象改变
                schoolName: 'xxxx学校',
                adress: 'xxx街道',
            }
        },//数据
})

const vm &#61; new Vue({
    el: &#39;#root&#39;,
    template:&#96;
    &lt;school&gt;&lt;/school&gt;
    &#96;,
    //2、注册组件 &#xff08;局部注册&#xff09;
    components: {
        school,

    }


});</code></pre> 

定义的组件,是构造函数

每次调用组件的创建 Vue.extend 返回的都是全新的VueComponent的构造函数()

源码分析:每次调用

vm上的$children是组件vc

1、school组件本质是一个VueComponent的构造函数,不是程序员定义的,是Vue.extend生成的

2、我们只需要写 <school></school>或者 </school>,Vue解析的时候会帮我创建school组件的实例对象

即Vue帮我执行new VueComponent(options),使用几次调用几次

3、注意:每次调用组件的创建 Vue.extend 返回的都是全新的VueComponent的构造函数()

4、关于this指向

1、组件配置中

data函数、methods中的函数、watch函数、computed中的函数 this全部指向VueComponent实例对象

2、new Vue(options)配置中

data函数、methods中的函数、watch函数、computed中的函数 this全部指向Vue实例对象5、VueComponent的实例对象简称vc,也即是组件实例对象

Vue实例对象简称vm

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值