vue3父子组件通信之子组件修改父组件传过来的值

 更新时间:2024年05月28日 10:51:06   作者:我爱加班  
这篇文章主要介绍了vue3父子组件通信之子组件修改父组件传过来的值,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

一、第一种,通过props方式传值:

父组件:

父组件调用子组件Child1时通过 :msg2= "msg2"把msg2的数据传给子组件,并且通过自定义事件接收子组件的emit通知,用来修改父组件的msg2数据。

源码:

<template>
  <div>
    我是home组件 父组件
    <h1>{{ msg }}</h1>
    <div>父组件--props方式传值:{{ msg2 }}</div>
    <Child1 :msg2="msg2" @event="eventFn" />
  </div>
</template>
<script setup>
import { ref } from 'vue'
import Child1 from './child1.vue'
const props = defineProps(['msg'])
const msg2 = ref('今天是星期三,多云。')
const eventFn = (val) => {
    msg2.value = val
}
</script>

子组件:

子组件通过defineProps接收一下msg2 ,可以直接展示在模板上,子组件自定义emit事件去通知父组件修改msg2的数据,数值是子组件传过去的。

源码:

<template>
  <div>
    <h3>大家好,我是子组件1</h3>
    <button @click="handleClick">修改父组件数据msg2</button>
    <div>子组件——props方式传过来:{{ msg2 }}</div>
  </div>
</template>
<script setup>
import { ref, reactive } from 'vue'
const props = defineProps(['msg2'])
const emit = defineEmits(['event'])
const handleClick = () => {
    emit('event', '希望早日出太阳,暴富而不是暴晒!')
}
</script>

点击前:

点击后:

二、第二种,通过v-model+冒号+要传的值 的方式(这个v-model可以写多个):

父组件:

父组件调用子组件时,通过v-model:num="num" 的方式传值给子组件。

源码:

<template>
  <div>
    我是home组件 父组件
    <h1>{{ msg }}</h1>
    <div>父组件--props方式传值:{{ msg2 }}</div>
    <div>父组件num——v-model方式传值:{{ num }}</div>
    <Child1
     :msg2="msg2" @event="eventFn"
     v-model:num="num"
     />
  </div>
</template>
<script setup>
import { ref, reactive } from 'vue'
import Child1 from './child1.vue'
const props = defineProps(['msg'])
const msg2 = ref('今天是星期三,多云。')
const num = ref(0)
const eventFn = (val) => {
    msg2.value = val
}
</script>

子组件:

子组件也先通过defineProps接收一下num,并展示。然后通过自定义emit事件

const emit = defineEmit(['update: num'])

然后通过点击事件updateNum方法来触发通知父组件修改num数据。

源码:

<template>
  <div>
    <h3>大家好,我是子组件1</h3>
    <button @click="handleClick">修改父组件数据msg2</button>
    <div>子组件——props方式传过来:{{ msg2 }}</div>
    <button @click="updateNum">修改父组件num</button>
    <div>子组件num——v-model方式传过来:{{ num }}</div>
  </div>
</template>
<script setup>
import { ref, reactive } from 'vue'
const props = defineProps(['msg2','num'])
const emit = defineEmits(['event', 'update:num'])
const handleClick = () => {
    emit('event', '希望早日出太阳,暴富而不是暴晒!')
}
const updateNum = () => {
    emit('update:num', 222)
}
</script>

点击前:

点击后:

三、父组件调用子组件时,通过v-model传多个值

父组件写法:

子组件写法:

效果:

以上就是vue3中,props和v-model两种常用的父子组件通信方法 。

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

相关文章

  • vue如何处理base64格式文件pdf及图片预览功能

    vue如何处理base64格式文件pdf及图片预览功能

    这篇文章主要给大家介绍了关于vue如何处理base64格式文件pdf及图片预览功能的相关资料,图片的base64编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址,需要的朋友可以参考下
    2024-05-05
  • vue动态绑定多个class以及带上三元运算或其他条件

    vue动态绑定多个class以及带上三元运算或其他条件

    这篇文章主要介绍了vue动态绑定多个class以及带上三元运算或其他条件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue如何通过$router.push传参数

    vue如何通过$router.push传参数

    这篇文章主要介绍了vue如何通过$router.push传参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • vue实现滑动和滚动效果

    vue实现滑动和滚动效果

    这篇文章主要为大家详细介绍了vue实现滑动和滚动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Vue+Element-ui弹窗 this.$alert is not a function问题

    Vue+Element-ui弹窗 this.$alert is not a function问题

    这篇文章主要介绍了Vue+Element-ui弹窗 this.$alert is not a function问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 关于Vue中$refs的探索浅析

    关于Vue中$refs的探索浅析

    这篇文章主要给大家介绍了关于Vue中$refs的探索,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 在nuxt使用vueX代替storage的实现方案

    在nuxt使用vueX代替storage的实现方案

    这篇文章主要介绍了在nuxt使用vueX代替storage的实现方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • jenkins自动构建发布vue项目的方法步骤

    jenkins自动构建发布vue项目的方法步骤

    这篇文章主要介绍了jenkins自动构建发布vue项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • vue中@路径无法跳转到指定文件的解决

    vue中@路径无法跳转到指定文件的解决

    这篇文章主要介绍了vue中@路径无法跳转到指定文件的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • vue子组件created方法不执行问题及解决

    vue子组件created方法不执行问题及解决

    这篇文章主要介绍了vue子组件created方法不执行问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10

最新评论