昨天重新回顧了我們在練習作品中常用的Vue語法及語法組成架構,今天再來接續介紹:還有哪些在我們這次改版練習ToDoList中遇到的常用屬性?
基本上就是要來驗收前幾天學習的內容,但是旨在整理相關常用指令,看看我們從Vue5%到現在Vue30%寫出來的東西差異大不大!
◎小提示:本系列並不算手把手教學,現有素材請參考:Vue的分組報告—實作To Do List
昨天我們提到了很多屬性綁定的用法,可以用v-bind或v-on去綁定class或監聽click事件。不過針對介面輸入的內容呢?
<input>上輸入的資料要和js做事件監聽連動的動作:  const content = ref('')
  <input v-model="content" type="text" placeholder="請輸入文字" />
我們的ToDoList輸入框就是加入了v-model,讓vue幫我們綁定它的value值並監聽input事件!下面還有不同類型的表單元素綁定動作:
<textarea>:綁定value,監聽input事件<input type="checkbox/radio">:綁定checked,監聽change事件checkbox為多選狀態時可以用ref([])陣列取得多值<select>:綁定value,監聽change事件<input type="checkbox" v-model="change" true-value="yes" false-value="no">
▲Vue提供true-value、false-value與v-model搭配使用,當change屬性被選中值為yes、取消為no,也可以動態綁定:
<input type="checkbox" v-model="change" :true-value="tureCustomize" :false-value="falseCustomize">
v-model會監聽不一樣的事件,此時,如果加入修飾符可以讓監聽事件改變:  <input v-model.lazy="content" type="text" placeholder="請輸入文字" />
▲input使用.lazy修飾符,從原本的input事件改為change(很好理解就是懶惰一點)
  <input v-model.trim="content" type="text" placeholder="請輸入文字" />
▲.trim則是去除內容前後空格,協助開發者處理資料
更進階的用法可參考:組件 v-model
enter鍵來幫我執行:<input @keyup.enter="addTodo" v-model="content" type="text" placeholder="請輸入文字" />
<button @click="addTodo">加入</button>
//input和button都可以達成送出的功能

@keyup搭配其他常用的按鍵別名:
.up:上.down:下.left:左.right:右.space:空格.enter:輸入.esc:取消.tab:縮排.delete:刪除.left:鼠標左鍵.right:鼠標右鍵.middle:鼠標滾輪.ctrl
.alt
.shift
.meta:各系統對應不一樣的按鍵,如:Windows鍵(⊞)、Command鍵(⌘)…等使用時機:
<input @keyup.ctrl.space="change">
//按住ctrl+space鍵時觸發,單獨按space不會觸發
還有一種情況是鼠標搭配系統按鍵:
//點選按鍵只要有包含ctrl就會觸發
<button @click.ctrl="change"></button>
//加入修飾詞.exact,只點選ctrl才會觸發
<button @click.ctrl.exact="change"></button>
▲需要精確指名觸發按鍵的時候可以使用.exact
學到這裡已經可以靠綁定事件觸發、鍵盤監聽,處理大部分單純的屬性。但程式永遠都不會只有這麼單純,明天再來繼續消化計算屬性!(P.S此時it邦整個大斷線,本文能順利發出嗎)
參考資料
Vue-事件處理