组件双向绑定

1.vue3.4之前是通过defineProps和defineEmits来实现组件双向绑定

子组件:通过 defineEmits 定义了一个自定义事件update:modelValue,当输出发close方法时,它会通过这个事件向父组件传递新的值。父组件中的这个方法会自动处理这些事件。

父组件:

最初这个组件只能执行一次只有第一次点击时可打开对话框因为子组件对话框绑定用的:model-value这个是因为props.visible是父组件穿过来的是只读的不可修改,v-model是双向绑定会对绑定值进行修改所以不可用v-model,此时只能打开一次是因为把弹出的对话框关掉后没有改变visible的值visible一直为true,可通过父组件穿@close方法改变visible的值解决,也可通过defineprops和defineEmit实现组件的双向绑定来解决。

2.vue 3.4版本之后是采用defineModel() 来解决组件的双向绑定的

子组件:通过defineModel()进行定义,双方通过v-model绑定,自定义一个选择物料在库的方法当双击选中物料那一行时触发这个方法通知父组件并将选择的数据传到父组件

父组件:

在Vue中,父子组件之间的双向绑定可以通过props和事件来实现。在父组件中,可以通过v-bind将属性绑定到子组件上,并通过事件监听子组件的变化。而在子组件中,可以通过this.$emit触发事件并将值传递给父组件。 具体步骤如下: 1. 在父组件中,通过props将属性绑定到子组件上。例如,使用v-bind指令将isShow属性绑定到子组件上:【Adv】: 子组件标签 【:isShow】:父组件绑定的属性 【isShow1】:父组件想向子组件传递的值。 2. 在子组件中,通过props接收从父组件传递过来的属性。可以在子组件的props选项中声明接收的属性,然后在子组件中就可以使用this.propsName获取父组件传递的值。例如:子组件props接收isShow属性:【isShow】:就是父组件绑定的属性。它在子组件用props接收后,用this.isShow就可获取使用。 3. 如果子组件有需要向父组件传递的值,可以通过this.$emit触发一个自定义事件,并将值作为参数传递给父组件。在父组件中,可以通过v-on指令监听子组件触发的事件,然后在事件处理函数中获取子组件传递的值。例如:子组件通过this.$emit触发事件,父组件使用v-on接收事件:【:isShow】:父组件绑定的属性 【isShow1】:父组件想向子组件传递的值。 【子组件,this.$emit】:1.子组件,this.$emit。 总结:通过在父组件和子组件之间使用props和事件的方式,可以实现Vue中的父子组件双向绑定。父组件通过props将属性传递给子组件,子组件通过this.$emit触发事件将值传递给父组件。这样就实现了父子组件之间的双向数据流。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值