一、组件命名的方式
①kebab-case,单词之间采用 - (短横线)连接,例如:my-component ,在DOM中使用时,
②PascalCase,驼峰式名称,单词之间,首字母大写,例如:MyComponent,但是在DOM中使用时,必须更改为,
二、全局注册
①通过Vue.extend()和Vue.component()注册
1 // 方式1 2 var tmp1 = Vue.extend({ 3 template: "通过 Vue.extend 创建的 tmp1 组件
" 4 }); 5 Vue.component("tmp1", tmp1); 6 7 8 // 方式2 9 Vue.component("tmp2", Vue.extend({ 10 template: "通过 Vue.extend 创建的 tmp2 组件
" 11 }));
②通过Vue.component()字面量注册
1 Vue.component("tmp3", { 2 template: "通过字面量方式创建的tmp3组件
" 3 });
③通过 方式注册
js部分:
1 Vue.component("tmp4", { 2 template: "#template1" 3 });
HTML部分:
1 <template id="template1"> 2 <h4>这是通过 app 外部 template 标签自定义的 tmp4 组件h4> 3 template>
三、定义局部组件
局部组件定义在vue实例内部,该组件只能在vue实例控制范围内才能使用
JS部分:
1 var app2 = new Vue({ 2 el: "#app2", 3 components: { 4 "temp5": { 5 template: "app2 的局部组件 h1
" 6 }, 7 "temp6":{ 8 template:"app2 的局部组件 h2
" 9 } 10 } 11 });
HTML部分:
1 <div id="app"> 2 3 4 div> 5 6 <div id="app2"> 7 <temp5>temp5> 8 div>
如果在app中使用了temp5组件会报以下警告:
1 [Vue warn]: Unknown custom element:- did you register the component correctly? For recursive components, make sure to provide the "name" option.