一、input上的v-model原理
vue中的v-model最常用的就是在input節點上,像下面這樣:
"text" v-model=
"message"
>
v-model實際上是一種資料和方法繫結的語法糖
"text"
:value=
"message" @input=
"message = $event.target.value"
>
當然也可以使用自定義方法進行事件繫結
"text"
:value=
"value" @input=
"sendmessage($event.target.value)"
>
二、組建上應用v-model
在parent父元件中使用child子元件,並進行雙向資料繫結
"message"
>
<
/child>
結合上面input的解析,這裡實際上也是一種語法糖
"message" @input=
"message = $event"
>
<
/child>
注意這裡取值是$event
,而不是$event.target.value
,這是因為這裡的v-on:input
實際上是子元件向父元件發射的事件名稱。
溫習一下子元件向父元件傳遞發射事件並附值的用法:
在父元件中繫結乙個事件,通過$event
獲取到子元件傳遞過來的值
"getmessage($event)"
>
<
/child>
然後在子元件中觸發trans-message
事件
"$emit('trans-message', 'hello')"
>
<
/button>
tip: 自定義的方法一定要使用『「-」 連線符來命名,不能使用駝峰命名的方式。
那麼,在元件中使用 v-model 時,就需要我們在子元件中向父元件發射 input 事件。
child模板:
"text"
:value=
"value" @input=
"$emit('input', $event.target.value)"
>
同時需要在child元件中定義prop:
props:
['value'
]
至此,就可以實現在元件上應用v-model
實現雙向資料繫結。
詳情參考vue官方文件
vue表單應用 v model
v model只能用於 input select textarea這些表單元素上實現雙向資料繫結。所謂雙向書資料繫結,指的是在vue物件中的data與其繫結的dom元素的內容保持一致。兩者無論誰被改變,另乙個也相應改變。因為表單元素展現資料的方式不同,在實現雙向資料繫結時,vue會根據不同的控制項型...
vue元件上使用v model
v model實現資料雙向繫結,其實現原理為 value params input params event.target.value v model語法糖 自己寫了個demo,如下 父元件在這 testtext testchild div template import testchild fro...
Vue 在元件中使用 v model
參考 自定義事件 custom event 還可以用來建立出 實現 v model 機制的自定義輸入框 custom input 回顧前面章節中 等同於如下 而用於乙個元件時,v model 則可以替換為如下 為了元件內部能夠有效執行,元件內的 必須 將 value 屬性繫結到 value prop...