【vue】vue组件和vue实例,以及vuex和mixin的本质

216 阅读1分钟

一、组件和实例的关系

组件是扩展的 Vue 构造器,“扩展”的含义就是根据自己的需要去定制Vue构造器

MyComp=Vue.extend({template:'<div>我就是组件</div>'})

模板中的

<MyComp>...</MyComp>

是实例化组件的一种方法, 相当于:

new MyComp() 

so 实例化的组件就是vue实例

PS:extend方法

Vue.extend( options )
  参数:{Object} options
  用法:使用基础 Vue 构造器,创建一个“子类”。参数是一个包含组件选项的对象;
  	   data 选项在 Vue.extend() 中它必须是函数;

二、vuex的本质
这里还可以补充一下vuex vuex的实质就是没有扩展template的Vue组件

三、mixin的本质

vue中mixin的混入,其实也是就是对组件拓展,内部是一些组件的复用功能 没有data而已

// 定义一个混入对象
var myMixin = {
  created: function () {
    this.hello()
  },
  methods: {
    hello: function () {
      console.log('hello from mixin!')
    }
  }
}

// 定义一个使用混入对象的组件
var Component = Vue.extend({
  mixins: [myMixin]
})
var component = new Component() // => "hello from mixin!"