Vue的全局API里面有两个东东比较容易混淆,component和extend。首先给出定义,component是用来声明注册或者获取组件的。Vue组件是实例,带一堆Vue给的选项的实例。所以全局component的语法其实很简单:
Vue.component("这个是组件的名称",{/** 这里面是一堆Vue的选项,用来配置这个Vue组件的,选项都是键值对形式存在 **/})
然而,extend虽然和组件相关,但是不是用来注册或者获取组件的。extend是Vue的构造器,参数也是一个包含一对选项的对象。extend的使用语法:
Vue.extend({/** 一堆选项 **/});
extend通过一堆选项构造一“类”组件,这类的组件需要使用则需要实例化:
var Gouzao =Vue.extend({/** 一堆选项 **/}); //实例化方式一 new Gouzao(); //这里就实例化了 //实例化方式二 Vue.component("cus",Gouzao); //这么就实例化了一个组件 <cus></cus>
extend的核心还是扩展,所以可以设定一个基础的组件“类”,然后再扩展一个新的组件类型。
请注意下面的代码
Vue.component("组件名称", Vue.extend({/** 一堆选项 **/}));
Vue.component("组件名称", {/** 一堆选项 **/}));
以上两个代码等价,因为Vue在注册组件的时候会调用extend。