1.子组件获取props和抛出update:text事件
<template>
<div>
<van-cell-group>
<van-field v-model="text" label="文本" />
</van-cell-group>
</div>
</template>
<script>
import { ref, watch } from 'vue'
export default {
name:"zzjInput",
props:{
text:{
type:String,
default:""
}
},
setup(props,context){
let text=ref('')
watch(()=>props.text,(val)=>{
text.value=val
})
watch(()=>text.value,(val)=>{
context.emit('update:text',val)
})
return {
text
}
}
}
</script>
2.父组件双向绑定,其实是单向绑定text和监听update:text事件
<template>
<div>
<zzjInput v-model:text="val"></zzjInput>
</div>
</template>
<script>
import zzjInput from '@/components/zzjInput'
import { ref, watch } from 'vue'
export default {
components:{
zzjInput
},
setup(){
let val=ref('')
watch(()=>val.value,(val)=>{//监听val,输入框变化,val变化则是实现了双向绑定
console.log(val)
})
return{
val
}
}
}
</script>
注意:在vue3中,v-modal不一定通过value值传递,可任意自定义的props来传递,抛出事件则是update:xxx固定为形式
版权声明:本文为weixin_44494811原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。