vue 組件 全局注冊和局部注冊的實(shí)現(xiàn)
全局注冊,注冊的組件需要在初始化根實(shí)例之前注冊了組件;
局部注冊,通過使用組件實(shí)例選項(xiàng)注冊,可以使組件僅在另一個組件或者實(shí)例的作用域中可用:
全局組件
js
Vue.component('tab-title',{
props:['title'],
template:'<li v-on:click="$emit(\'change\')">{{title}}</li>'
})
Vue.component('tab-content',{
props:['content'],
template:'<div>{{content}}</div>'
})
局部組件demo:
html
<div id="app">
<ul class="navTab">
<li v-for="(navTab,index) in navTabs" is="tab-title" v-bind:info="navTab.text" v-bind:class="{active:navTab.isActive}" v-on:addactive="switchActive(index)"></li>
</ul>
<div class="tabContent">
<div v-for="navTab in navTabs" is="tab-content" v-bind:content="navTab.tabContent"
v-bind:class="['tab-panel',{active:navTab.isActive}]" v-if="navTab.isActive"></div>
</div>
</div>
js
var app=new Vue({
el: '#app',
components: {
'tab-title': {
props:['info'],//接受父元素傳遞的參數(shù)
template:'<li v-on:click="$emit(\'addactive\')">{{info}}</li>'//點(diǎn)擊時傳遞通過$emit子元素傳遞給父元素調(diào)用 addactive方法(不能使用駝峰寫法)
},
'tab-content':{
props:["content"],
template:'<div>{{content}}</div>'
}
},
methods:{
switchActive:function(index){
for(var i=0;i<this.navTabs.length;i++){
this.navTabs[i].isActive=false;
}
this.navTabs[index].isActive=true;
}
},
data:{
navTabs:[
{
text:"tab1",
isActive:true,
tabContent:'this is tab1 content'
},
{
text:"tab2",
isActive:false,
tabContent:'this is tab2 content'
},
{
text:"tab3",
isActive:false,
tabContent:'this is tab3 content'
}
]
}
});
組件實(shí)例的作用域是孤立的。這意味著不能再子組件的模板內(nèi)直接引用父組件的數(shù)據(jù)。要讓子組件可以使用父組件的數(shù)據(jù),我們需要通過子組件的props選項(xiàng)。
子組件要顯式地用 props 選項(xiàng)聲明它期待獲得的數(shù)據(jù)
在模板中,要動態(tài)地綁定父組件的數(shù)據(jù)到字模板的props,與綁定到任何普通的HTMO特性相類似。就是使用 v-bind。每當(dāng)父組件的數(shù)據(jù)變化時,該變化也會傳遞給子組件:
所有的vuejs組件都是被擴(kuò)展的vue實(shí)例
每一個Vue實(shí)例都會代理這個實(shí)例的data屬性對象里的所有的屬性
所有的Vue實(shí)例本身保羅的屬性和方法,都以$開頭來區(qū)別,對應(yīng)Vue.set
例如:
vm.$data
vm.$methods
vm.$watch
這個有利于和data屬性對象的數(shù)據(jù)來區(qū)分
多有的指令都以v-xxx形式存在:
以上這篇vue 組件 全局注冊和局部注冊的實(shí)現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Template?ref在Vue3中的實(shí)現(xiàn)原理詳解
這篇文章主要為大家介紹了Template?ref在Vue3中的實(shí)現(xiàn)原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
vue中js實(shí)現(xiàn)點(diǎn)擊復(fù)制文本到剪貼板的3種方案
今天遇到一個復(fù)制粘貼的需求,研究之后發(fā)現(xiàn)太簡單了,這篇文章主要給大家介紹了關(guān)于vue中js實(shí)現(xiàn)點(diǎn)擊復(fù)制文本到剪貼板的3種方案,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09
總結(jié)4個方面優(yōu)化Vue項(xiàng)目
在本篇文章里我們給大家整理了一篇關(guān)于優(yōu)化VUE項(xiàng)目的四個總要點(diǎn),對此有需要的朋友們學(xué)習(xí)下天。2019-02-02
解決vue單頁路由跳轉(zhuǎn)后scrollTop的問題
今天小編就為大家分享一篇解決vue單頁路由跳轉(zhuǎn)后scrollTop的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
vue element 表頭添加斜線的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue element 表頭添加斜線的實(shí)現(xiàn)代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-11-11

