所有分类
  • 所有分类
  • 后端开发
Vue3:教你修改父组件传递到子组件中的值

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

运行环境:Windows
所需软件:Word
资源类型:简历
资源下载
仅限注册用户下载,请先
解压密码:www.icz.com 使用版权:资源收集于网络,版权归原创者所有

今天我们来讨论一下中Vue3父子组件的传值:教你修改父子组件传输到子组件的值。

众所周知,vue具有单向数据流的传输特性。当您在子组件中修改父组件传输的数据时,控制台会报告错误,并表示不允许您修改父组件传输的值。
2.然后,为了解决这个问题,尤大大在vue3的时候给了我们一个新的想法:v-model可以实现父传子,子也可以修改父组件传输的数据。
3. 大家都看到了,我给大家提供了两个修改父组件数据的想法(不限于vue3):
方法一:父传子采用v-model,子组件修改父组件传输值。
方法二:用Pinia或vuex进行状态管理,然后修改数据。

v用于自定义组件-model

父组件:

  1. ///这是从父组件中引入的子组件
  2. <ChildrenView  vmodel:num=“num”/>
  3.  
  4. //定义数据
  5. let num=ref(10);///定义num为10,传输给子组件

子组件:

  1. <script setup>
  2.     ///子组件接收父组件传递的数据
  3.     let props=defineProps({
  4.         num:number;
  5.     });
  6.     console.log(props.num)///接收到的数据num=10
  7.  
  8.     //重点:开始修改子组件传输的num
  9.     //1.介绍我们的 **emit(自定义事件名,传递的数据)** 触发自定义事件的函数
  10.     //2.使用emit()
  11.     let emit=defineEmits([“update:num”]);///自定义更新num事件
  12.     //3.假设子组件中有一个按钮执行changenum事件
  13.     let changeNum=()=>{
  14.         emit(“update:num”,100);///触发自定义事件,将父组件的num修改为100
  15.     }
  16.      
  17. </script>

注意:
1.每个人都必须有疑问。这个emit()不是子传父用的吗?那么这个update就不应该绑定在父组件上了。:num吗?
以下:父组件:<ChildrenView v-model:num="num" @update:num="changeNum" >
是的,确实是子传父用的,但是你不需要再绑定了@update:num了。
why?
因为特大大在自定义组件上使用了v-model,所以你只需要emit(“定义updatete”:“值”,数据)可以修改父组件的值

总结:

使用步骤如下:

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

2.子组件接收propsnum

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

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

  1. ///这里的“值”和v-model:值 保持一致,即:v-model:num   emit(“update:num”)
  2. let emit=defineEmits([“update:值”])  
  3. emit(“update:值”,子传父的数据),执行即修改父组件传递的值
资源下载
下载价格免费
解压密码:www.icz.com 使用版权:资源收集于网络,版权归原创者所有
运行环境:Windows
所需软件:Word
资源类型:简历
原文链接:https://www.icz.com/technicalinformation/web/vue3/2023/05/8674.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?