vue組件和根實(shí)例的關(guān)系

學(xué)vue組件的時(shí)候,一直沒(méi)有弄明白,用Vue.component注冊(cè)組件的時(shí)候,整個(gè)component方法單擺浮擱,沒(méi)有和其他任何Vue實(shí)例有關(guān)聯(lián),想不明白為什么也能修改html內(nèi)容。

在傳統(tǒng)思維里,HTML標(biāo)簽我們只有選擇器(讀)的權(quán)限,少有修改(寫(xiě))的權(quán)限,如果思維固化,會(huì)導(dǎo)致認(rèn)為標(biāo)簽里的名稱(chēng)對(duì)于我們沒(méi)有實(shí)際意義,尤其div這種空氣標(biāo)簽,非常容易會(huì)被忽略為不存在,而Vue里,<my-component></my-component>標(biāo)簽是有用的,不是div那類(lèi)空架子,而且vue.js里有些操作會(huì)和它產(chǎn)生關(guān)聯(lián):

這里的todo-item標(biāo)簽已經(jīng)和js有了關(guān)聯(lián) (請(qǐng)忽略波浪線)??

而在我們的js文件里,先注冊(cè)一個(gè)組件(照著官網(wǎng)教程抄的)

這句語(yǔ)句已經(jīng)和上一個(gè)圖的自己寫(xiě)的<todo-item>標(biāo)簽有了關(guān)聯(lián)(現(xiàn)在看不出來(lái))

之后,new一個(gè)vue實(shí)例

這個(gè)app7實(shí)例寫(xiě)一個(gè)el測(cè)試一下就行

此時(shí),全局組件會(huì)自動(dòng)綁定到這個(gè)實(shí)例里面,也就是el元素#app-7內(nèi)部有如果有<todo-item>標(biāo)簽,就把這個(gè)標(biāo)簽替換為之前Vue.component注冊(cè)的template;

所以:如果想使用全局組件,

第一步:在html里你需要的位置用組建名寫(xiě)一個(gè)空標(biāo)簽(<todo-item></todo-item>)

第二步:在js里注冊(cè)全局組件(Vue.component(組件名,配置))

第三步:在空標(biāo)簽的父標(biāo)簽new一個(gè)vue實(shí)例(如示例的#app-7)

完成:如果vue實(shí)例所在的標(biāo)簽下有<todo-item></todo-item>標(biāo)簽,默認(rèn)就會(huì)把這個(gè)全局組件綁定給這個(gè)todo-item標(biāo)簽

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容