vue散記 根template只能有乙個子元素

2021-10-06 15:17:16 字數 813 閱讀 2954

之前使用過別人寫的vue+element專案,在別人搭建好的框架下修修改改、縫縫補補,感覺還行,整體流程還能走的通,但是不能總是用別人搭建好的框架啊。於是就想著自己也用vue-cli搭建一套,搭建的過程中也遇到了些問題,有些不理解的,就記下來,因為比較散,就寫個散記系列吧。

每個元件檔案中的根template,也就是最外層的template只能有乙個子元素。非根template沒有限制,可以有多個。以下的template均指的是根template,不要混淆了。

當template有多個子元素時,報錯,如下

意思是說,每個template根元素只能有乙個元素。

這個時候,可以進行修改,可以在所有的子元素外層,包乙個div,如下:

vue在動態建立dom的時候,會將template中的子元素作為入口進行建立,根據這個入口,遍歷以該子元素作為根節點的整個節點樹,然後建立虛擬dom。template用於建立單檔案元件,實際上是一種原子化的設計,可以一次定義,然後在任何地方生成dom,如果有多個子元素,就違背了這種原子設計,也就是說,乙個template就只會渲染乙個子元件樹。如果template有多個子元素,那麼vue就無法獲取確切入口,就得刻意去指定某個元素作為根節點,而同時其他節點也就成為了費節點,這樣無疑就增大了程式設計的複雜性,而且還增加了無用**,有必要嗎,木有啊。所以,在語法檢查的時候,就會進行校驗,防止出現費力不討好的情況發生。

vue知識點散記

2 v cloak 防止雙括號的閃爍 在style裡 v cloak 3 computed和watch都有快取機制 差值表示式 4 計算屬性的set和get方法 computed set function value vm.fullname gello world 5 vue中的樣式 1 class...

vue 非template模式 Vue起手式

一 vue的學習路線 二 vue cli 官方 使用 vue cli 全域性安裝 npm install g vue cli或者yarn global add vue cli 建立目錄 選擇配置 進入目錄,執行yarn serve開啟webpack dev server 使用webstorm或vsc...

vue之 template 模板編譯 理解

通過通過compile編譯器把template編譯成ast語法樹,ast會經過generate 將ast語法樹轉化成render function字串的過程 得到render函式,render的返回值是vnode,vnode是vue的虛擬dom節點,裡面包含 標籤名 子節點 文字等 然後進行真實do...