v-model双向绑定原理
父组件代码如下:
<template> <div> 我是父组件: <input type="text" v-model="msg"> <son-box v-model="msg"/> </div> </template> <script> // 导入子组件 import SonBox from '@/components/son.vue' export default { name:'FatherBox', components:{ SonBox }, data(){ return{ msg:'测试内容' } } } </script>
子组件代码如下:
<template>
<div>
<!-- 子组件接收父传过来的数据,并侦听内容的更改状态 $event.target.value是获取当前子组件input框中的内容 -->
我是子组件: <input type="text" :value="value" @input="changeValue($event.target.value)"/>
</div>
</template>
<script>
export default {
name: "SonBox",
props: {
value: {
required: true,
}
},
methods: {
changeValue(value){
// v-model语法糖,在设置子传父,时设置input事件,并携带value参数,修改父组件的数据实现双向数据绑定。
this.$emit('input',value) //触发input事件,父组件接收input事件
}
},
};
</script>

浙公网安备 33010602011771号