欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue.extend与vue.component的区别和联系

程序员文章站 2023-09-08 11:15:02
如果大家只顾开发,对基础知识不了解,在今后的解决问题过程中,也是个大问题,今天小编抽空对基础概念给大家屡一下,用于大家日后学习。 vue.extend({})简述:使用v...

如果大家只顾开发,对基础知识不了解,在今后的解决问题过程中,也是个大问题,今天小编抽空对基础概念给大家屡一下,用于大家日后学习。

vue.extend({})简述:使用vue.extend返回一个子类构造函数,也就是预设部分选项的vue实例构造器。

后可使用vue.component进行实例化、或使用new extendname().$mount(''+el)方式进行实例化(从而实现模拟组件)。

vue.extend与vue.component的区别和联系

vue.component({})简述:不多介绍了。。。用于生成全局组件

使用:

  1,vue.component使用vue.extend生成的构造函数:

vue.extend与vue.component的区别和联系

  2,实例化构造函数从而模拟组件:

vue.extend与vue.component的区别和联系

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