紀錄當輸入網址到瀏覽器中,中間的 資料傳輸 和 網頁解析 分別經歷了那些過程
ReVue-Vue的emit和props運用
Vue 元件 emit 和 props 傳輸概念
Vue-v-on觸發事件
Vue 的 v-on 觸發事件應用
Vue-v-model雙向綁定
Vue 的 v-model 雙向綁定應用
Vue-v-for用法及注意的地方
v-for
這邊的功能就是利用 v-for 來遍歷一個陣列或者一個物件
1 | ---HTML--- |
以上兩種方式,都可以達到將裡面的內容透過 v-for 呈現在畫面上,不過要注意一下,物件那邊的寫法,key 會呈現該屬性名稱 而 value 會呈現該 key 所夾帶的值。
另外,我們也可以用 v-for 單純去遍歷一個數字
1 | <div v-for="num in 10"> {{ num }} </div> |
以上範例就會從 1 到 10 顯示出來,記得這個部分數字會從 1 開始算喔。
Alex 宅幹嘛-眉眉角角
v-for 不要搭配 v-if 來使用
因為,在 Vue 中,v-for 的優先度是高於 v-if 的,這就代表,v-for 會先將目標陣列中的元素全部先渲染出來,然後,才會再執行你的 v-if 判斷內容。
而 v-if 就會將不滿足判斷式的內容給抽離掉,這樣就會浪費掉之前 v-for 渲染出來的元素的資源,所以,才不建議這樣用。
那比較好的方式可以 v-for 搭配 v-show,因為,v-show 只是為不滿足判斷式的元素,去更改其 display 的樣式,這樣比較不會浪費資源。
另外,你也可以先用 computed 過濾掉原始不要的資料,最後,再透過 v-for 去渲染出 computed 過濾後的結果。
Vue-v-if和v-show的應用與差別
v-if
這個 directive 的功能是,藉由判斷一個內容,來決定要不要將相對應的內容呈現在網頁上。
如果今天你有兩個以上的元素的 v-if 是要判斷同一個元素的話,官方文件建議你用 template 將這些元素包起來,然後,在這個 template 上用 v-if 統一對同一個內容做判斷
ex:
1 | <div v-if="isShow">這一個區塊</div> |
可以用 template 改寫成
1 | <template v-if="isShow"> |
以上範例就能統一去判斷 isShow 這個內容,而且 template 這個 tag 也不會出現在 DOM 上面。
Vue-靜態屬性和動態綁定的優先順序
這篇的內容式複習 Vue 中有一個很重要的功能,體現資料驅動畫面的概念,那就是 v-bind
。
首先, v-bind
可以用來綁定很多東西,在 Vue 的官方文件中就有提到,可以綁定 DOM 元素的屬性、class、樣式。
動態綁定屬性
以上這個範例,就利用v-bind
的方式,來為這個a
連結動態的綁定上 Vue 物件裡面的資料。
動態綁定 Class
綁定 class 物件
在 Vue 中,動態綁定 class 的方式,可以透過判斷某個判斷式是否是 true
或 false
,來判斷是否要加入該 class
上面這個範例,可以看到綁定一個 classObj 的物件,裡面包裹了兩個 class,這兩個 class 都自帶自己的樣式,那我們就將它們設為 true
,如此,就會把 classObj 裡面的 class 都加到目標元素中。