學(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):

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

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

此時(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)簽