如果有科班出身,或是受過完整程式教學培訓的小夥伴,
或許會有個疑問,之前學習時,通常在早期就會介紹到選擇性結構、重覆性結構,
為什麼我們這麼晚才介紹呢?
主要原因有兩個,Vue顧名思義(法文中,視圖的意思),我們使用這框架主要是做畫面的開發,
並不一定需要有個完整的程式流程架構。
雖然在蒐集資料的時候發現沒有人稱之為選擇性結構,
不過我們這邊還是先稱 v-if
、v-else-if
、v-else
為 選擇性結構。
這與一般的選擇性結構 一樣,當條件成立時執行特定的程式碼。
(這邊指的是,當條件成立時,顯示Tag內的內容)
接下來看下面的範例:
div
<div id="if-example">
<div v-if="R_U_Genius">我是天才~</div>
<div v-else>我不是天才QQ</div>
</div>
我們設定當R_U_Genius
條件成立的時候顯示我是天才,
否則顯示 我不是天才QQ
R_U_Genius:true
(若是想知道如果自己不是天才的小夥伴可將true
改成false
試試看)
可以看到,當條件成立的時候只會顯示我是天才。
小夥伴可能會說,除了天才 跟不是天才,我就不能有其他選項嗎?
當然是可以喔,為了解決這好奇小夥伴的問題,v-else-if
就派上用場了,
將程式再稍微修改一下。
<div id="if-example">
裡面的內容 <div id="if-example">
<div v-if="IQ>=120">我是天才 ~^^~</div>
<div v-else-if=" IQ>= 95 && IQ < 120">我是人才 ~@@~</div>
<div v-else> 我們是一家人 </div>
</div>
當IQ
大於等於 120 時候,會顯示我是天才 ~^^~
當IQ
大於等於 95 且(&&) 小於120 的時候,會顯示我是人才 ~@@~
當IQ
小於 95 時候,會顯示我們是一家人
IQ
IQ:180,
(這邊可以依照自己的狀況填上喜歡的數值)
6.來看看我們的結果
看來我們是天才的事實依然沒有變~
對初出茅廬的小夥伴可能需要注意一下,v-else-if
、v-else
這兩個屬性都必須出現在if
,不得單獨出現。
既然介紹到選擇性結構,那我們就來提選擇性結構的兩個優化,
第一個是為了讓自己的好夥伴們能更加容易接手自己的工作,(為什麼工程師總是要這樣搞自己)
這邊給小夥伴一些小提示 filters
,filter(過濾器)可以讓你更加優雅的撰寫程式碼。
另一個是當你開發到需要在意效能的時候,可能會開始考慮使用v-show
。v-show
的使用方式與v-if
完全一致。
不過v-if
是刪除與重建,而v-show
是顯示與隱藏
在效能上會有些不同。
在開始v-for
之前我們先來在template上面加入一點東西
1.加入下方程式碼:
template:
<div id="for-example">
<ul>
<li>餅乾</li>
<li>糖果</li>
<li>水果</li>
</ul>
</div>
我們做了一個點心的清單
2. 看看我們的畫面
我們很簡單的做出了一個清單,不過在這時候如果我們又要加入冰淇淋與飲料我們該怎麼辦?
3. 我們必須要寫兩個新的<li>
上去並在內容上輸入 冰淇淋、飲料
template:
<div id="for-example">
<ul>
<li>餅乾</li>
<li>糖果</li>
<li>水果</li>
<li>冰淇淋</li>
<li>飲料</li>
</ul>
</div>
我們可以看到這作法有個問題,
如果我們想要繼續增加的時候就必須再寫<li>內容</li>
,
不斷的這樣寫下去,不僅之後在管理上面不容易,寫起來也是挺惱人的。
這種寫法,我們稱作靜態式網頁的寫法,你寫甚麼就在網頁上呈現甚麼。
常見的問題就是你想要看到不同的畫面就必須向不同的網址做請求,
不僅開發上麻煩,對使用者的體驗也不是那麼友善,那我們該如何改善這問題呢?
先看看程式碼有哪些部分是重覆的
可以看到不斷的重覆<li></li>
裡面包著不同的內容
所以我們可以利用v-for
改成:
template:
<div id="for-example">
<ul>
<li v-for="(item,index) in dessert" :key="index">{{item}}</li>
</ul>
</div>
item
: 代表dessert裡面的每個物件index
: dessert裡面的第幾個物件key
: 鍵值,類似門牌號碼或是id一樣作為識別用的功能
dessert:[
"餅乾","糖果","水果","冰淇淋","飲料"
]
我們可以看到畫面呈現結果也是完全相同。但是在未來需要新增的時候,
我們只需要再dessert
裡面新增我們要的內容就能夠在畫面顯示新增的內容。
若有想要指定特定的key
的話,v-for
還提供另一種寫法:
v-for="(item, key, index) in list"
這種寫法必須用 key
value
的形式去宣告你的list。
到這篇結束已經把一隻.vue
程式裡面常見的架構及語法(大致)都介紹完了,
通常到下一個階段後,會有一點小斷層,
對於前面篇章感到有些吃力的小夥伴趕緊先回去多做練習。
避免之後的內容跟不上唷~