03 Vue进阶extend使用方法详讲

本文详细介绍了Vue.js中`Vue.extend`和`extends`两种组件继承与扩展的方法。通过示例展示了如何创建和使用组件,分析了它们的区别。在使用继承后,data、computed属性及事件会被覆盖,mounted生命周期钩子会按顺序触发。在实际开发中,开发者需要根据需求权衡选择使用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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传值

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流氓也是种气质 _Cookie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值