第12屆鐵人賽Day 5 v-bind, v-model, v-on

昨天討論了單向資料流的鬍子語法,可以讓我們把Vue實例裡的資料流向html (View)。
但如果要將資料綁定HTML標籤屬性的時候,該怎麼辦呢?
舉例🌰而言,如果我們想把HTML的placeholder綁上vue instance的data屬性yourname,這個時候,我們可以使用v-bind

單向資料綁定: v-bind

html

  <p class="control">
    <input class="input" v-bind:placeholder="yourname">
  </p>

Vue instance

new Vue({
  el: "#app",
  data: {
  	yourname: "請輸入您的暱稱"
  },
  methods: {
  	greeting(){
    	return "這是鐵人賽第五天!"
    }
  }
})

範例:在這個輸入格的placeholder提示上綁v-bind:placeholder="yourname",就會出現請輸入您的暱稱的提示字串了。

雙向事件處理: v-model, v-on

在上例表單的情況,

我想要讓使用者輸入暱稱時,使用v-model讓暱稱可以即時顯示。
並且讓使用者按下button時,呼叫thankyou這個methods裡面的方法。

而Vue的黑魔法,讓this拿到inputname裡的值, 所以我們可以透過${this.inputname}要到使用者的輸入資料,並在畫面上顯示,達成資料回流到Vue instance的效果。

v-bind和v-on的簡寫

因為v-bind和v-on太有用啦,所以有他自己的語法糖衣syntax sugar

資料綁定v-bind :
事件處理v-on @

Vue其實還有其他好用的設計像是v-for把陣列裡的資料印出來, v-if, v-show 流程控制。這個部分跟一般程式語言的邏輯還蠻相似的,各位可以參考vue官網範例,暫時不一一贅述。明天將會介紹v-on跟method結合,以及更多變化的v-compute

Ref: