Vue3中如何修改父组件传递到子组件中的值(全网少有!)

 更新时间:2023年04月15日 11:53:37   作者:喝西瓜汁的兔叽Yan  
大家都知道,vue是具有单向数据流的传递特性,下面这篇文章主要给大家介绍了关于Vue3中如何修改父组件传递到子组件中值的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

Vue3中修改父组件传递到子组件中的值

1.大家都知道,vue是具有单向数据流的传递特性。当你在子组件中修改父组件传递过来的数据的时候,控制台就会报出错误,说不让你对父组件传递的值进行修改。
2.那么,尤大大为了解决这个问题,在vue3的时候给我们提供了一个新的思路:v-model来实现父传子,并且子也可以修改父组件传递过来的数据。
3. 都读到这里了,我给大家提供两个修改父组件数据的思路(不仅限于vue3):
法一:使用v-model进行父传子,并且子组件修改父组件传递的值。
法二:使用Pinia或者vuex进行状态管理,然后进行数据的修改。

自定义组件上使用v-model

父组件:

//此处是父组件中引入的子组件
<ChildrenView  v-model:num="num"/>

//定义数据
let num=ref(10);//定义num为10,传递给子组件

子组件:

<script setup>
	//子组件接收父组件传递过来的数据
	let props=defineProps({
		num:number;
	});
	console.log(props.num)//接收过来的数据num=10

	//重点:开始修改子组件传递过来的num
	//1.引入我们的 **emit("自定义事件名",传递的数据)** 函数,用来触发自定义事件
	//2.使用emit()
	let emit=defineEmits(["update:num"]);//自定义的更新num事件
	//3.假设子组件里的有个按钮,执行的是这个changeNum事件
	let changeNum=()=>{
		emit("update:num",100);//触发自定义事件,将父组件的num修改为100
	}
	
</script>

注意:
1.大家肯定有疑惑,这个emit()不就是子传父的时候用的吗,那么父组件上不应该去绑定这个update:num吗?
如下:父组件:<ChildrenView v-model:num="num" @update:num="changeNum" >
是的,确实是子传父用的,但是你没必要再去绑定@update:num了。
why?
因为尤大大在自定义组件上使用v-model自己已经做过了处理,所以你只需要emit(“定义update:值”,数据)即可修改父组件的值了

总结:

使用步骤如下:

1.父组件中的子组件绑定自定义属性num

2.子组件接收props的num

3.子组件定义emit事件,事件名为update:值 —defineEmits([“update:num”])

4.执行emit() ----emit(“自定义事件update:num”,子传父的值)

//此处的"值"要和v-model:值 保持一致,即:v-model:num   emit("update:num")
let emit=defineEmits(["update:值"])  
emit("update:值",子传父的数据),执行即修改了父组件传递过来的值

到此这篇关于Vue3中如何修改父组件传递到子组件中值的文章就介绍到这了,更多相关Vue3修改父组件传递到子组件的值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中使用moment设置倒计时的方法

    vue中使用moment设置倒计时的方法

    这篇文章给大家介绍了vue中使用moment设置倒计时的方法,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • 快速解决vue动态绑定多个class的官方实例语法无效的问题

    快速解决vue动态绑定多个class的官方实例语法无效的问题

    今天小编就为大家分享一篇快速解决vue动态绑定多个class的官方实例语法无效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue3中的defineExpose使用示例教程

    vue3中的defineExpose使用示例教程

    这篇文章主要介绍了vue3中的defineExpose使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • 解决vuejs 使用value in list 循环遍历数组出现警告的问题

    解决vuejs 使用value in list 循环遍历数组出现警告的问题

    今天小编就为大家分享一篇解决vuejs 使用value in list 循环遍历数组出现警告的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue3封装hooks实现实时获取麦克风音量

    Vue3封装hooks实现实时获取麦克风音量

    这篇文章主要为大家详细介绍了Vue3如何通过封装一个hooks实现实时获取麦克风音量功能,文中的示例代码讲解详细,需要的小伙伴可以参考一下
    2024-03-03
  • vue实现二级弹框案例

    vue实现二级弹框案例

    这篇文章主要为大家详细介绍了vue实现二级弹框案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • vue脚手架搭建项目的兼容性配置详解

    vue脚手架搭建项目的兼容性配置详解

    这篇文章主要介绍了vue脚手架搭建项目的兼容性配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 手把手教你vue-cli单页到多页应用的方法

    手把手教你vue-cli单页到多页应用的方法

    本篇文章主要介绍了手把手教你vue-cli单页到多页应用的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Vue动态组件表格的实现代码

    Vue动态组件表格的实现代码

    这篇文章主要介绍了Vue动态组件表格的实现代码,包括框架结构组件,文中还给大家封装了几个组件,有按钮组件、图片组件、滑动开关,结合示例代码给大家详细讲解,需要的朋友可以参考下
    2022-10-10
  • vue 实现 rem 布局或vw 布局的方法

    vue 实现 rem 布局或vw 布局的方法

    这篇文章主要介绍了vue 实现 rem 布局的 或者 vw 布局的方法,本文给提供多种方法,需要的朋友可以参考下
    2019-11-11

最新评论