欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue 的 v-model用法實例

 更新時間:2020年11月23日 09:22:52   作者:有野心的露娜  
這篇文章主要介紹了Vue 的 v-model用法實例,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下

Vue 框架早已經(jīng)不是 MVVM(Mode-View-View-Model) 雙向綁定了。早在 Vue 1.0 時代,Vue 在剛出世的時候的確是 MVVM 雙向綁定。自 Vue 2.0 以來,Vue 就不再是雙向綁定了,而是像 React 一樣是單向綁定 MV(Model-View)了。但是,在 Vue 中仍保留了雙向綁定的接口,v-model 就是。

1. 基本用法

<template>
 <div id="app">
  <input v-model="x">
  {{x}}
 </div>
</template>

<script>
export default {
 data(){
  return {
   x: 'init'
  }
 }
}

在 JS 中修改 x 的值,input 輸入框里也會隨之改變。同樣地,在頁面中的 input 輸入框內(nèi)手動輸入值,變量 x 的值也會隨之改變。對象里的變量改變會影響視圖的 input 的改變,視圖中 input 的改變會影響對象里變量 x 值的改變。這就是雙向綁定(Model-View-View-Model)。

2. v-model

實質(zhì)上述使用 v-model 的代碼等價于如下代碼:

<template>
 <div id="app">
  <input :value="x" @input="x = $event.target.value">
  {{x}}
 </div>
</template>

<script>
export default {
 data(){
  return {
   x: 'init'
  }
 }
}
</script>

v-model 幫我們做的事就是,為 input 的 value 值設(shè)置一個動態(tài)綁定,然后在輸入框的 input 事件觸發(fā)后實時修改動態(tài)綁定的 value 的變量值。因此 v-model 實質(zhì)是上述方式的語法糖。

$event 是原生 DOM 事件里的 event 事件對象。

3. v-model 的修飾符

所有修飾符都是起一個輔助的作用,其實可以在函數(shù)里自己判斷條件實現(xiàn)。.lazyv-model 默認(rèn)監(jiān)聽的是輸入框的input 事件,原生 DOM 的input 事件就是記錄實時的輸入變化值。但是,我們有時不需要實時記錄結(jié)果,只需要記錄最終輸入的結(jié)果值就可以了。

input 的原生 DOM 事件中還有一個change 事件,該事件是在輸入框失去焦點時 或 按下回車鍵時 執(zhí)行的。v-model 里以.lazy 修飾符的方式切換至該監(jiān)聽模式。

<template>
 <div id="app">
  <input v-model.lazy="x">
  {{x}}
 </div>
</template>等價于:<template>
 <div id="app">
  <input :value="x" @change="x = $event.target.value">
  {{x}}
 </div>
</template>

.number.number修飾符是在輸入內(nèi)容改變后進(jìn)行變量賦值時,自動使用 parseFloat() 函數(shù)將其變成數(shù)字。使用該修飾符時變量的初始值必須是數(shù)字。

<template>
 <div id="app">
  <input v-model.number="x">
  {{x}}
 </div>
</template>

<script>
export default {
 data(){
  return {
   x: 0
  }
 }
}
</script>
  • .trim

.trim修飾符是將輸入的內(nèi)容改變后進(jìn)行變量賦值時,自動忽略和去除前后的空格。更為精準(zhǔn)地記錄輸入的字符串內(nèi)容。

<template>
 <div id="app">
  <input v-model.trim="x">
  {{x}}
 </div>
</template>

<script>
export default {
 data(){
  return {
   x: 'init'
  }
 }
}
</script>

4. 自定義輸入框的 v-modelv-model

的基本用法僅僅適用于原生的輸入框元素 ,對于用戶自己封裝的輸入框,可以用如下方式使用 v-model。當(dāng)用在組件上時,v-model 的實質(zhì)如下:

<custom-input v-model="x"></custom-input>

等價于:

<custom-input :value="x" @input="x = $event"></custom-input>

因此,在自定義表單組件里的寫法如下:

<template>
  <div class="wrapper">
    <input :value="value" @input="$emit('input', $event.target.value)">
  </div>
</template>

<script>
export default {
  props: {
    value: {
      type: String
    }
  }
}
</script>

<style scoped>
  .wrapper{
    border: 2px solid blue;
    display: inline-block;
  }
  .wrapper input{
    color: red;
  }
</style>
<template>
 <div id="app">
  <MyInput v-model="x"/>
  {{x}}
 </div>
</template>

<script>
import MyInput from './components/MyInput'
export default {
 data(){
  return {
   x: 0
  }
 },
 components:{
  MyInput
 }
}
</script>

補充:若想在自定義組件里面的原生輸入框也使用 v-model,可以根據(jù)組件 v-model 的實質(zhì),使用計算屬性的賦值方式為=使用。

以上就是Vue 的 v-model用法實例的詳細(xì)內(nèi)容,更多關(guān)于vue v-model的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue初嘗試--項目結(jié)構(gòu)(推薦)

    vue初嘗試--項目結(jié)構(gòu)(推薦)

    這篇文章主要介紹了vue初嘗試--項目結(jié)構(gòu)的相關(guān)知識,需要的朋友可以參考下
    2018-01-01
  • Vue彈窗的兩種實現(xiàn)方式實例詳解

    Vue彈窗的兩種實現(xiàn)方式實例詳解

    這篇文章主要介紹了Vue彈窗的兩種實現(xiàn)方式,一種使用.sync修飾符另一種使用v-model,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 解析Vue.use()是干什么的

    解析Vue.use()是干什么的

    今天通過本文給大家分享Vue.use是什么,主要包括vueEsign?插件的install是什么,element-ui的install是什么,為什么有的庫就不需要使用Vue.use,對vue.use()相關(guān)知識感興趣的朋友一起看看吧
    2022-06-06
  • vue-treeselect顯示unknown的問題及解決

    vue-treeselect顯示unknown的問題及解決

    這篇文章主要介紹了vue-treeselect顯示unknown的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue插槽的作用

    Vue插槽的作用

    插槽(slot)是 vue 為組件的封裝者提供的能力。允許開發(fā)者在封裝組件時,把不確定的、希望由用戶指定的部分定義為插槽??梢园巡宀壅J(rèn)為是組件封裝期間,為用戶預(yù)留的內(nèi)容的占位符
    2022-09-09
  • VueCli生產(chǎn)環(huán)境打包部署跨域失敗的解決

    VueCli生產(chǎn)環(huán)境打包部署跨域失敗的解決

    這篇文章主要介紹了VueCli生產(chǎn)環(huán)境打包部署跨域失敗的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 封裝 axios+promise通用請求函數(shù)操作

    封裝 axios+promise通用請求函數(shù)操作

    這篇文章主要介紹了封裝 axios+promise通用請求函數(shù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 在vue中動態(tài)添加class類進(jìn)行顯示隱藏實例

    在vue中動態(tài)添加class類進(jìn)行顯示隱藏實例

    今天小編就為大家分享一篇在vue中動態(tài)添加class類進(jìn)行顯示隱藏實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue使用codemirror的兩種用法

    vue使用codemirror的兩種用法

    這篇文章主要介紹了在vue里使用codemirror的兩種用法,每種方法通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • vue2.0 與 bootstrap datetimepicker的結(jié)合使用實例

    vue2.0 與 bootstrap datetimepicker的結(jié)合使用實例

    本篇文章主要介紹了vue2.0 與 bootstrap datetimepicker的結(jié)合使用實例,非常具有實用價值,需要的朋友可以參考下
    2017-05-05

最新評論