站長資訊網
        最全最豐富的資訊網站

        一文詳解vue怎么實現v-model(附代碼示例)

        本篇文章給大家帶來了關于vue的相關知識,其中主要給大家介紹了我們為什么使用v-model?用vue怎么實現v-model的,感興趣的朋友一起來看一下吧,希望對大家有幫助。

        一文詳解vue怎么實現v-model(附代碼示例)

        • 為什么使用v-model? v-model作為雙向綁定指令也是vue兩大核心功能之一,使用非常方便,提高前端開發效率。在view層,model層相互需要數據交互,即可使用v-model。
        • v-model的原理簡單描述

        v-model主要提供了兩個功能,view層輸入值影響data的屬性值,data屬性值發生改變會更新view層的數值變化。

        其核心就是,一方面modal層通過defineProperty來劫持每個屬性,一旦監聽到變化通過相關的頁面元素更新。另一方面通過編譯模板文件,為控件的v-model綁定input事件,從而頁面輸入能實時更新相關data屬性值。

        • v-model是什么 v-model就是vue的雙向綁定的指令,能將頁面上控件輸入的值同步更新到相關綁定的data屬性,也會在更新data綁定屬性時候,更新頁面上輸入控件的值。

        vue2.0實現方法

        • 父組件

        <template>   <div id="app">     {{username}} <br/>     <my-input type="text" v-model="username"></my-input>   </div> </template>  <script> import myinput from './components/myinput' export default {   name: 'App',   components:{       myinput   },   data(){     return {       username:''     }   }  } </script>
        登錄后復制

        • myinput.vue:

        <template>     <div class="my-input">         <input type="text" class="my-input__inner" @input="handleInput"/>     </div> </template>  <script>     export default {         name: "myinput",         props:{             value:{ //獲取父組件的數據value                 type:String,                 default:''             }         },         methods:{             handleInput(e){                 this.$emit('input',e.target.value) //觸發父組件的input事件             }         }     } </script>
        登錄后復制

        最常見的還有一種事控制模態框的展示與關閉,我們也可以用v-model 以element 的 el-dialog組件為例子

        • App.vue

        <template>     <div>         <kmDialog             v-model="showDialog"         >         <el-button @click="show">點我</el-button>     </div> </template> <script>     import kmDialog from 'KmDialog.vue'     export default {         components: {             KmDialog         }         data () {             return {                 showDialog: false             }         },         methods: {             show() {                 this.showDialog = true             }         }     } </script>
        登錄后復制

        • KmDialog.vue

        <template>     <el-dialog         :title="isEdit ? '編輯設備' : '新增設備'"         :visible.sync="value"         width="40%"         @close="cancel"       >         <span>這是一段信息</span>     </el-dialog> </template> <script>     export default {         props: {             value: {                 default: false,                 type: Boolean             }         },         methods: {             cancel() {                 this.$emit('input', false)             }         }     } </script>
        登錄后復制

        推薦學習:《vue.js視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产精品一级片| 99热精品久久只有精品| 国产精品臀控福利在线观看 | 久久精品成人影院| 97久久久精品综合88久久| 色婷婷久久久SWAG精品| mm1313亚洲国产精品无码试看| 国产亚洲精品美女久久久| 亚洲精品国产精品国自产观看| 国产精品99久久久久久宅男| 1024国产欧美日韩精品| 久热这里只有精品视频6| 综合在线视频精品专区| 日本Aⅴ大伊香蕉精品视频| 精品国产91久久久久久久a | 中文字幕精品亚洲无线码二区| 精品91自产拍在线观看二区| 欧美日韩精品乱国产538| 99re热这里只有精品视频中文字幕 | 国自产偷精品不卡在线| 亚洲精品你懂的在线观看| 香蕉国产精品麻豆亚洲欧美日韩精品自拍欧美v国 | 亚洲国产小视频精品久久久三级| 精品久久久久久国产免费了| 国产精品JIZZ在线观看老狼| 午夜精品在线观看| 精品视频在线v| 国产精品青草久久久久婷婷| avtt天堂网久久精品| 国产成人精品视频一区二区不卡 | 97r久久精品国产99国产精| 国内精品伊人久久久久AV影院| 亚洲精品国产综合久久一线| 麻豆精品| 亚洲国产人成精品| 亚洲AV无码久久精品狠狠爱浪潮 | 91亚洲精品麻豆| 国产激情精品一区二区三区| 国产天天综合永久精品日| 国产在线精品一区二区三区不卡| 精品国产综合区久久久久久|