03 Vue进阶extend使用方法详讲

extend主要用于高级组件开发,开发插件或this.$notiy这样的方式调用组件

有二种方式使用extend

一.extend的两种使用方式

1.方式一 :extend的方式创建组件 Vue.extend(com) 

<script>

    const com = {
      data: {
        text: 1
      },
      mounted() {
        console.log('com')
        console.log(this.text)

      }
    }
    // extend的使用方式1,js方式创建组件
    let comVue = Vue.extend(com)
    new comVue({ // 创建组件
      el: '#app',
      data: {
        text: 3
      },
      mounted() {
        console.log('instace')
      }
    })
  </script>

 控制台输出:

2.方式一 :extends的方式 extends: 'com'

<body>
  <script src=" https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
  <div id="app">
    <com2></com2>  // 此处使用了com2组件
  </div>

  <script>

    const com = {
      data: {
        text: 1
      },
      mounted() {
        console.log('com')
        console.log(this.text)

      }
    }
    const com2 = { // 又是一个对象
      extends: 'com',
      data: {
        text: 9
      },
      mounted() {
        console.log('com2')
      }
    }

    new Vue({
      el: '#app',
data: {
        text: 3
      },
      components: {
        com2: com2
      },
      mounted() {
        console.log('vue')
      }
    })
  </script>
</body>

控制台输出:

 区别:

        Vue.extend的方式不用调用即可使用,extends的方式需要调用才能使用,我们开发组件的时候就需要衡量

结论:

        使用继承后data,computed,事件都被会覆盖, mounted 都会被触发(先触发被继承的,再触发继承后的),prop 需要通过propsData传值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值