uniapp vue2中子组件实现v-model双向绑定

父组件

<select-mer v-model="showSelctMerData">
				
			</select-mer>

子组件

model: {
		        prop: 'value',
		        event: 'input' // event 后的值必须是input,其他值无效。
		  },
		props:{
			value:{
				type:Boolean,
				default:false
			}
		},
methods:{
			closeMaks(){
				这里使用Input事件就改变value的值了
				this.$emit('input',false)
				console.log("点击了---",this.value)
			}
		}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue 3 中子组件传递数据给父组件的方式有以下几种: 1. 使用事件触发: - 在子组件中使用 `$emit` 方法触发一个自定义事件,并传递需要传递的数据。 - 在父组件中使用 `v-on` 或 `@` 监听子组件触发的自定义事件,并在事件处理函数中获取传递的数据。 2. 使用`v-model`指令: - 在子组件内部,使用 `props` 接收来自父组件的数据,并在子组件内部修改该数据。 - 在子组件内部使用 `$emit('update:modelValue', value)` 触发一个名为 `update:modelValue` 的事件,将修改后的数据作为参数传递给父组件。 - 在父组件中使用 `v-model` 指令绑定子组件的数据,并监听子组件触发的 `update:modelValue` 事件。 3. 使用 provide/inject: - 在父组件中使用 `provide` 方法提供数据,子组件中使用 `inject` 方法接收数据。 - 通过这种方式,父组件中的数据会被子组件共享,并且当父组件中的数据发生变化时,子组件也会联动变化。 示例代码如下: // 父组件 <template> <div> <ChildComponent @customEvent="handleCustomEvent" v-model="parentData" /> </div> </template> <script> import { ref } from 'vue'; import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent, }, setup() { const parentData = ref(''); const handleCustomEvent = (data) => { console.log(data); // 子组件传递过来的数据 }; return { parentData, handleCustomEvent, }; }, }; </script> // 子组件 ChildComponent.vue <template> <div> <input v-model="childData" /> <button @click="handleClick">发送数据给父组件</button> </div> </template> <script> import { ref, provide, inject } from 'vue'; export default { props: ['modelValue'], emits: ['update:modelValue', 'customEvent'], setup(props, { emit }) { const childData = ref(''); const handleClick = () => { emit('update:modelValue', childData.value); // 发送数据给父组件 emit('customEvent', childData.value); // 触发一个自定义事件,并传递数据给父组件 }; provide('childData', childData); // 使用 provide 共享子组件的数据 return { childData, handleClick, }; }, created() { const sharedData = inject('childData'); // 使用 inject 接收共享的数据 console.log(sharedData); // 父组件传递过来的数据 }, }; </script> 在上述代码中,父组件通过传递 `parentData` 给子组件,并监听 `customEvent` 事件和 `update:modelValue` 事件,以接收子组件传递过来的数据。子组件内部使用 `v-model` 绑定 `childData` 数据,并通过 `$emit` 触发 `update:modelValue` 事件和 `customEvent` 事件,以传递数据给父组件。同时,子组件也使用 `provide` 共享 `childData` 数据给其他子组件使用。 以上是 Vue 3 中子组件传递数据给父组件的几种常用方式,根据具体的业务需求选择合适的方式使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初遇你时动了情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值