父组件传递给子组件数据,子组件使用 props 接收,但是 props 是单向数据流,不能在子组件直接修改父组件传递给子组件数据,所以不能在子组件使用 v-model
在父组件子组件标签上使用 v-model ,需在子组件上使用 : value=‘’ value ‘’ ,动态绑定 value 值,使用 @input = ‘’ input ‘’ 绑定 input 事件
(因为 v-model 相当于在父组件的子组件标签上自定义 : value=‘’ value ‘’ , @input =‘’ input’’ )
//在父组件中
<template>
<div>
<myinput v-model="msg"></myinput>
</div>
</template>
<script>
import myinput from '../components/myinput.vue'
export default {
components:{myinput},
data:function(){
return {
msg: 'hello'
}
},
}
</script>
//在子组件中
<template>
<div>
<input type="text" :value="value" @input="input">
</div>
</template>
<script>
export default {
props:['value'],
methods:{
input(e){
console.log(e.target.value)
this.$emit('input',e.target.value)
}
}
}
</script>