详解vue中v-model的实现原理
更新时间:2023年12月28日 09:54:13 作者:生活在北极的企鹅
v-model可以实现数据的双向绑定,也是vue的最突出的优势,其实 v-model 实际上是一个语法糖,本文将给大家介绍一下vue中v-model的实现原理,文中有相关的代码供大家参考,具有一定的参考价值,需要的朋友可以参考下
这是一个一直很经典的面试题 咱们废话不多说
v-model可以实现数据的双向绑定,也是vue的最突出的优势。其实 v-model 实际上是一个语法糖。其中原理很简单,只要就是两部分,一个是事件监听,一个是属性绑定。等下会用代码来展示这两部分。举个v-model实现数据双向绑定的例子:
<body>
<div id="app">
<p>展示value1: {{ value1 }}</p>
<input type="text" v-model="value1" />
</div>
</body>
<script type="text/javascript" src="./js/vue.min.js"></script>
<script>
const vm = new Vue({
el: "#app",
data: {
value1: ""
}
})
</script>
从上代码可以看出,当我在输入框输入的值改变的时候,所展示的内容也会改变;
<body>
<div id="app">
<p>展示value1: {{ value1 }}</p>
<input type="text" v-model="value1" />
<p>绑定的数据为:{{value2}}</p>
<input type="text" :model="value2" @input="changeVal" />
</div>
</body>
<script type="text/javascript" src="./js/vue.min.js"></script>
<script>
const vm = new Vue({
el: "#app",
data: {
value1: "",
value2: ""
},
methods: {
changeVal(e) {
console.log(e.target.value, '我输入的值在改变');
this.value2 = e.target.value;
}
}
})
</script>
由上代码所述 他的操作原理是 先监听数值改变 然后在进行赋值;
<div id="root">
单向数据绑定【v-bind:value】: <input type="text" v-bind:value="name" /><br />
双向数据绑定【v-model:value】: <input type="text" v-model:value="name" /><br />
单向数据绑定【:value】: <input type="text" :value="name" /><br />
双向数据绑定【v-model】: <input type="text" v-model="name" />
</div>
<script src="./js/vue.min.js"></script>
<script>
Vue.config.productionTip = false
new Vue({
el: '#root',
data: {
name: 'JOJO'
}
})
</script>到此这篇关于详解vue中v-model的实现原理的文章就介绍到这了,更多相关vue v-model实现原理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
这篇文章主要介绍了详解如何实现Element树形控件Tree在懒加载模式下的动态更新,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-04-04
如何使用el-table实现纯前端导出(适用于el-table任意表格)
我们日常做项目,特别是后台管理系统,常常需要导出excel文件,这篇文章主要给大家介绍了关于如何使用el-table实现纯前端导出的相关资料,本文适用于el-table任意表格,需要的朋友可以参考下2024-03-03


最新评论