vue 組件 全局注冊(cè)和局部注冊(cè)的實(shí)現(xiàn)
全局注冊(cè),注冊(cè)的組件需要在初始化根實(shí)例之前注冊(cè)了組件;
局部注冊(cè),通過(guò)使用組件實(shí)例選項(xiàng)注冊(cè),可以使組件僅在另一個(gè)組件或者實(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)擊時(shí)傳遞通過(guò)$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ù),我們需要通過(guò)子組件的props選項(xiàng)。
子組件要顯式地用 props 選項(xiàng)聲明它期待獲得的數(shù)據(jù)
在模板中,要?jiǎng)討B(tài)地綁定父組件的數(shù)據(jù)到字模板的props,與綁定到任何普通的HTMO特性相類似。就是使用 v-bind。每當(dāng)父組件的數(shù)據(jù)變化時(shí),該變化也會(huì)傳遞給子組件:
所有的vuejs組件都是被擴(kuò)展的vue實(shí)例
每一個(gè)Vue實(shí)例都會(huì)代理這個(gè)實(shí)例的data屬性對(duì)象里的所有的屬性
所有的Vue實(shí)例本身保羅的屬性和方法,都以$開(kāi)頭來(lái)區(qū)別,對(duì)應(yīng)Vue.set
例如:
vm.$data
vm.$methods
vm.$watch
這個(gè)有利于和data屬性對(duì)象的數(shù)據(jù)來(lái)區(qū)分
多有的指令都以v-xxx形式存在:
以上這篇vue 組件 全局注冊(cè)和局部注冊(cè)的實(shí)現(xiàn)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
intellij?idea+vue前端調(diào)試配置圖文教程
在Vue項(xiàng)目開(kāi)發(fā)過(guò)程中,當(dāng)遇到應(yīng)用邏輯出現(xiàn)錯(cuò)誤,但又無(wú)法準(zhǔn)確定位的時(shí)候,知曉Vue項(xiàng)目調(diào)試技巧至關(guān)重要,debug是必備技能,這篇文章主要給大家介紹了關(guān)于intellij?idea+vue前端調(diào)試配置的相關(guān)資料,需要的朋友可以參考下2024-09-09詳解Vue 多級(jí)組件透?jìng)餍路椒╬rovide/inject
這篇文章主要介紹了詳解Vue 多級(jí)組件透?jìng)餍路椒╬rovide/inject,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Vue實(shí)現(xiàn)登錄記住賬號(hào)密碼功能的思路與過(guò)程
最近在學(xué)習(xí)vue,發(fā)現(xiàn)了vue的好多坑,下面這篇文章主要給大家介紹了關(guān)于Vue實(shí)現(xiàn)登錄記住賬號(hào)密碼功能的思路與過(guò)程,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-11-11