局組件和局部組件
1.先定義組件 Vue.component('組件名', { 組件模板對象 })
注意: 組件名不要使用原生的標簽名, 若組件名定義時用的是駝峰命名法, 則調用時用中劃線分割后小寫
例如: 組件-->mtText 使用時--> <my-text></my-text>
2.配置組件的模板 注意: 組件的模板內容有且只有一個根元素
3.在視圖層里調用 ,用雙標簽
4.組件是一個獨立的作用域, 也可以看成一個特殊的vue實例, 可以有data, methods,computed等等
注意: 組件的data是函數, 函數中需要返回一個對象作為組件的data
全局組件案例
<body><div id="app"> <my-component></my-component></div><script src="lib/vue-2.4.0.js"></script><script>//全局組件 Vue.component('myComponent',{ //1.組件的內容/模板 template: '<div><div>頭部組件</div><h1 @click="fn">呵呵{{msg}}</h1></div>', data(){ return { msg:'hello,組件' } }, methods:{ fn(){ console.log(this.msg); } } }) let vm = new Vue({ el:"#app", data:{ }, methods:{ }, })</script></body>局部組件案例
<body><div id="app"> <my-component></my-component> <my-test></my-test></div><template id="box1"> <h1>haha</h1></template><template id="box2"> <div> <ul> <li v-for="item in arr"> {{ item }} </li> </ul> </div></template><script src="lib/vue-2.4.0.js"></script><script>let vm = new Vue({ el:"#app", data:{ }, methods:{ }, //局部子組件 components:{ // 組件名: {配置項} "myComponent":{ template:'#box1', data(){ return { msg:"哈哈" } } }, "myTest":{ template:"#box2", data(){ return { arr:[1,2,3,4] } } } } })</script></body>組件切換:法一
<body><div id="app"> <a href="" @click.prevent=" rel="external nofollow" rel="external nofollow" flag=true">登錄</a> <a href="" @click.prevent=" rel="external nofollow" rel="external nofollow" flag=false">注冊</a> <login v-if="flag"></login> <register v-else="flag"></register></div><script src="lib/vue-2.4.0.js"></script><script> Vue.component("login",{ template:"<h1>登錄組件</h1>" }) Vue.component("register",{ template:"<h1>注冊組件</h1>" }) let vm = new Vue({ el:"#app", data:{ flag: false }, methods:{ }, })</script></body>
新聞熱點
疑難解答
圖片精選