天天看點

第八節:實戰前必須掌握的10個指令(下)

前端君 翻身的碼農

上一節我們學了5個重要的指令: v-text 、 v-html 、 v-show 、 v-if 、 v-else

傳送門:《 實戰前必須掌握的10個指令(上) 》

這一節,我們繼續學習剩下的5個指令。話不多說,撸起來!

有時候,我們的data中的存放的資料不是個簡單的數字或者字元串,而是數組array類型,這個時候,我們要把數組的元素展示在視圖上,就需要用到vue提供的 v-for 指令,來實作清單的渲染。

我們看看它的用法:

首先,我們的data中包含數組list,數組包含三個元素:“tom”,“john”,“lisa”,我們通過 v-for 指令把它渲染出來,其中item表示數組中的每個元素。我們看看渲染結果:

第八節:實戰前必須掌握的10個指令(下)

(效果圖)

我們看到,我們解析渲染出三個div,其中包含的值分别是數組中的元素,表示我們解析渲染成功。

什麼,怎麼拿到索引?拿到每個元素的索引也很簡單,我們稍微改動一下代碼,把html部分的代碼修改為:

在循環解析的過程中,我們不但要拿到list數組的每個元素item,我們還擷取每個元素的索引,寫法如上,循環的時候加上(index,item)。

我們來看效果圖:

第八節:實戰前必須掌握的10個指令(下)

(效果圖)

我們看到,索引分别是0,1,2都被成功地渲染出來了。這就是用 v-for 指令來渲染清單的用法。比起以前手動更新dom清單,簡直就是友善得不要不要的。

第八節:實戰前必須掌握的10個指令(下)
提醒:v-for指令除了可以疊代數組,還可以疊代對象和整數。

在第六節我們也提過 v-bind 指令的作用和用法,它用于動态綁定dom元素的屬性,比較常見的比如:<a>标簽的href屬性,<img/>标簽的src屬性。

用 v-bind 指令來修飾href屬性,表明它的值是一個動态的值,對應的則是data中的link的值:http://hello.com.

來吧,看看渲染效果:

第八節:實戰前必須掌握的10個指令(下)

<a>标簽的href的值成功地解析渲染成:http://hello.com。

第六節也說過, v-bind 指令可以簡寫成一個冒号“:”,也就是以下兩種寫法是等價的。

它們的解析渲染效果是一樣一樣的。

v-on 指令相當于綁定事件的監聽器,綁定的事件觸發了,可以指定事件的處理函數,記性好的同學應該記得我們在第四節介紹methods選項的時候,有用到 v-on 指令。(估計你也不記得了),這裡我們還是配合methods來示範:

methods選項的用法不再展開講解,還不了解的同學可以翻看第四節《定義一個vue執行個體常用的4個選項》

回到這個例子,我們通過 v-on 指令修飾click點選事件,指定事件響應後的處理函數為methods中的say( )方法,我們渲染看看效果:

第八節:實戰前必須掌握的10個指令(下)

(gif圖,加載需要點時間)

點選按鈕,可以成功觸發click事件,并且調用say( ),一切都在我們的預期之中。

此外,如果你想給處理程式say( )傳參數,也是可以的,用法跟普通的方法一緻。

我們再上一個案例的基礎上稍微修改代碼,say(name)接受一個參數name,并把name列印出來,在調用的時候傳如實參“tom”。再看看效果,是不是在我們的預期之内:

第八節:實戰前必須掌握的10個指令(下)

“hello,tom”被列印出來了,一切盡在掌握之中,感覺真好。

這是一個最重要最常用的指令,一般用在表單輸入,它幫助我們輕易地實作表單控件和資料的雙向綁定,相對以前的手動更新dom,簡直就是開發者的福音,迫不及待地來看看它的用法:

隻要給input控件添加 v-model 指令,并指定關聯的資料msg,我們就可以輕松把把使用者輸入的内容綁定在msg上。我們把msg的内容顯示出來,看是不是跟使用者輸入的内容是同步更新的:

第八節:實戰前必須掌握的10個指令(下)

是不是比你手動更新dom爽多了,是不是感受到了vue的mvvm帶來的快感?

第八節:實戰前必須掌握的10個指令(下)

最後,我們再來講解一下v-once指令,它的特點是隻渲染一次,後面元素中的資料再更新變化,都不會重新渲染。

我們再上面的案例代碼中稍做修改,仔細看改了哪裡:

修改1:<p>标簽增加了 v-once 指令;

修改2:msg的初始值不再是空字元串。我們來看看效果:

第八節:實戰前必須掌握的10個指令(下)

由于msg有了初始值,第一次渲染的時候,input控件和<p>标簽都有了内容,由于<p>标簽我們添加了 v-once 指令,是以,後期我們更新msg的值的時候,<p>标簽的内容不會發生改變,也是符合我們的預期。

學完本節,你應該掌握了 v-for 、 v-bind 、 v-on 、 v-model 、 v-once 這5個指令的用法,加上第七節的5個指令,可以滿足你在開發中的需求了。