vue-extend

Vue.extend():创建一个Vue的子类,参数和Vue的参数是一样的,返回值为一个子类(好吧,其实JS中并没有类这个概念,至少es6之前是没有的),准确来说是返回一个构造函数;

看例子

<div id="mount-point"></div>
// 构建子组件
  var todoItem = Vue.extend({
    template: `
      <a href="#">这个是子组件 {{data}}</a>
    `,
    props: ['data']
  })


  // 创建构造器
  var Profile = Vue.extend({
    template: `
      <todo-item data="数据"></todo-item>
    `,
    data: function () {
      return {
        firstName: 'Walter',
        lastName: 'White',
        alias: 'Heisenberg'
      }
    },
    props: ['name'],
    components: {
      todoItem: todoItem
    },
    created () {
      console.log(this.name);
    }
  });

  // 创建 Profile 实例,并挂载到一个元素上。
  new Profile({propsData: {name: 'ccc'}}).$mount('#mount-point');

propsData:传递的参数,和Vue.component()的用法差不多;

不过为啥要用extend,因为它可以直接挂载到元素身上,而不用先 new Vue({el: "#app"});这样,因为在我们的项目中,之前一直没用vue,都是自己写的组件,然后觉得需要用Vue写组件比较方便,但是之前的不好改,需要先写好组件,直接挂载到元素身上,这样就可以方便替换之前的组件了

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值