v-model原理与模仿

本文探讨了v-model的工作原理,指出它涉及视图到数据的双向绑定。通过一个简单的例子,展示了如何模仿v-model的功能,利用Vue的父子组件通信来实现数据同步。在示例中,修改输入框的值会实时反映在对应的div中,揭示了v-model的实时更新机制。
摘要由CSDN通过智能技术生成

v-model的原理非常简单,只要我改变了view的数据时,把数据传回vue的data中即可。
模仿v-model,我用到了父子组件之间的相互传值。
下面是代码
1.声明子组件

let v_input = {    
    props:['inputvalue'],
    //这里直接使用value不行,必须使用v-bind
    template:`<input type="text" v-on:input="$emit('change',$event.target.value)" v-bind:value='inputvalue'/>`
   }

$event是获取当前元素的方法
2.实例化vue

var app = new Vue({
    el:'#app',
    data:{
     post:{
      value:"哈哈"
     }
    },
    components:{
     'vinput':v_input
    },
    methods:{
     gochange:function(go){
      this.post.value = go;
     }
    }
   })

3.HTML中加入

<div id="app"><vinput v-bind:inputvalue='post.value' v-on:change='gochange'></vinput>{{post.value}}</div>

最后看一下效果
在这里插入图片描述
当我改变输入框中的值时
在这里插入图片描述
可以看到div中的值也发生了变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值