vue.extend与vue.component的区别和联系
如果大家只顾开发,对基础知识不了解,在今后的解决问题过程中,也是个大问题,今天小编抽空对基础概念给大家屡一下,用于大家日后学习。
vue.extend({})简述:使用vue.extend返回一个子类构造函数,也就是预设部分选项的vue实例构造器。
后可使用vue.component进行实例化、或使用new extendname().$mount(''+el)
方式进行实例化(从而实现模拟组件)。
vue.component({})
简述:不多介绍了。。。用于生成全局组件
使用:
1,vue.component使用vue.extend生成的构造函数:
2,实例化构造函数从而模拟组件:
vue.extend与vue.component的区别总结
在vue.js中,vue本身是一个constructor。
vue.extend() 是一个继承于方法的 class,参数是一个包含组件选项的对象。它的目的是创建一个vue的子类并且返回相应的 constructor。
而vue.component()实际上是一个类似于vue.directive() 和 vue.filter()的注册方法,它的目的是给指定的一个constructor一个string类型的id,
之后vue.js可以把它用作模板,实际上当你直接传递选项给vue.component()的时候,它会在背后调用vue.extend()。
vue.js支持两种不同的api模型:一种是基于类的,命令式的,backbone 类型的api;另一种是基于标记语言的,声明式的,web组件类型的api。
如果还是困惑的话,可以想象你是怎么创建通过new image()或者 <img>标签创建 image元素的就知道了。
这两种方法都对指定的类型很有用,vue.js提供这两者只是为了更好的灵活性。
下面看下vue.extend,new vue 和vue.component的区别
extend 是构造一个组件的语法器. 你给它参数 他给你一个组件 然后这个组件
你可以作用到vue.component 这个全局注册方法里, 也可以在任意vue模板里使用apple组件
var apple = vue.extend({ …. }) vue.component(‘apple',apple)
你可以作用到vue实例或者某个组件中的components属性中并在内部使用apple组件
new vue({ components:{ apple:apple } })
vue.component 你可以创建 ,也可以取组件 例如下
var apple = vue.component(‘apple')
而new vue 是新建一个vue对象 所以可以理解为new vue < vue.extand < vue.component