這個 Vue 元件中的 v if 用法對嗎,正確的寫法應該是怎麼樣的?

時間 2021-05-05 17:51:57

1樓:芒果Mango

其實寫法上面就有不是正規,元件裡面沒有使用根元素去包裹著,最外面使用乙個div開始;

另外建議兩點

1-vue剛開始使用一下開發包去書寫會有個很好報錯提示提醒;

2-vue的好處是元件化,不如嘗試直接元件化來直接介入到開發裡面,不過要弄個腳手架來

2樓:「已登出」

入門前端試著回答一下

1首先元件只能有乙個根節點

2第二點關於指令的話我看了下原始碼

解析v-if 執行processIf 函式生成乙個樹解析v-else和v-else-if來說,並沒有把當前對應的AST物件加到AST樹中,而是把自己對應的AST物件新增到最近的v-if的ifConditions裡

所以我是這樣理解的,相當於v-if v-else是乙個(組)指令,只會被解析出來乙個節點。第二種寫法其實是滿足只有乙個根節點這個條件的。

3樓:水秋玄

乙個有趣的問題。

沒用這種方式寫過vue,試了一下,挺有趣的。

vue的元件只能有乙個根元素,請看:

把判斷去掉,每個元件只顯示第乙個div

使用腳手架開發的時候是會報錯的,只能有乙個根元素。沒用腳手架就不會,只不過會忽略後面的元素。

data等於1的時候,沒錯

你咋跑出來了?

有趣地地方就在這裡,去掉判斷的時候我們已經知道了元件是會忽略第二個元素的,但是這裡怎麼又跑出來了?通過vue.js可以看到報錯,但實際就像上面測試一樣,雖然報錯,但實際上還是忽略了第二個元素,然後渲染出來了。

先解決這個問題,題主需要先把元件的最外面包裹一層元素。如下圖,還有這種換行,可以使用反引號(Tab鍵上方),能直接換行。

再補充乙個小知識點:模板字串,可以方便地拼接變數和字串模板字串

對vue 內建元件keep alive的疑問,include和exclude不生效

aim leo 找了一下午,終於找到原因,include要生效,必須要滿足以下兩點 如果你要快取Live,不快取ConsultDetail,include需設定 1 需要快取的元件的name 注意不是路由的name 要在include中。2 不需要快取的name,必須設定!且不能在include中。...

哪位大佬解釋下 java中的這個用法 正在學習的新手

滬市AlphaGo 這個增強for迴圈有點問題,假設arr是int型別的陣列,那應該這麼寫int arr null for inti arr 下塘燒餅 我覺得你可能沒理解這個foreach增強迴圈語法的使用方法。arr是個int陣列吧?你換成string陣列大概就理解了,就像下面這樣 for Str...

請教大家,是有關as的用法!這個句子中作連詞or作介詞

zhyhm 我覺得分兩種情況,側重點不一樣 情況1 in the same context整個作為副詞修飾to talk about,as及其後面的修飾這個副詞,則as後面省略了in the one of,the one指代前文的那個context 情況2 context作為to talk abou...