vue3父子组件传对象,子组件访问修改父组件对象中的属性值

这篇具有很好参考价值的文章主要介绍了vue3父子组件传对象,子组件访问修改父组件对象中的属性值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

父组件:

<template>
  <CustomInput v-model="message.person" /> {{ message}}
</template>

<script>
import CustomInput from './CustomInput.vue'

export default {
  components: { CustomInput },
  data() {
    return {
      message: {name:'',person:{username:'zhangsan',userid:'1234'}}
    }
  }
}
</script>

子组件:

<template>
  <input :value="modelValue.username" @change="handleChange" />
  <input :value="modelValue.userid" @change="handleChange1" />
</template>

<script>
export default {  
  props: ['modelValue'],  
  emit: ['update:modelValue'],  
  setup(props,{emit}) {  
   const handleChange = (event) => {  
      emit('update:modelValue', { ...props.modelValue, username: event.target.value});  
    }
    const handleChange1 = (event) => {  
      emit('update:modelValue', { ...props.modelValue, userid: event.target.value});  
    }
    return { handleChange ,handleChange1 }   
  }  
}  
</script>

如使用element-plus写法如下:
<template>
  <el-input v-model="modelValue.username" @change="handleChange"/>
  <el-input v-model="modelValue.userid" @change="handleChange1"/>
</template>

<script>
export default {  
  props: ['modelValue'],  
  emit: ['update:modelValue'],  
  setup(props,{emit}) {  
   const handleChange = (event) => {  
      emit('update:modelValue', { ...props.modelValue, username: event});  
    }
    const handleChange1 = (event) => {  
      emit('update:modelValue', { ...props.modelValue, userid: event});  
    }
    return { handleChange ,handleChange1 }   
  }  
}  
</script>

在实际运用中不需要这么复杂,父组件不变,子组件如下文章来源地址https://www.toymoban.com/news/detail-733080.html

<template>
  <el-input v-model="modelValue.username" @change="handleChange"/>
  <el-input v-model="modelValue.userid" @change="handleChange1"/>
</template>

<script>
export default {  
  props: ['modelValue'],  
  setup(props) {  
   const handleChange = (event) => {  
     //具体逻辑 例如:修改父组件username的值
     props.modelValue.person.username = 'lisi'
     props.modelValue.person.username = props.modelValue.person.username.slice(0,2)
    }
    const handleChange1 = (event) => {  
      //具体逻辑
    }
    return { handleChange ,handleChange1 }   
  }  
}  
</script>

到了这里,关于vue3父子组件传对象,子组件访问修改父组件对象中的属性值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【vue3】vue3中父子组件传参:

    一、父传子: 【1】父组件传值: 【2】子组件接收: 二、父调用子方法: 【1】父组件调用: 【2】子组件暴露: 三、子组件发送emit方法给父组件: 【1】父组件: 【2】子组件调用:

    2024年02月13日
    浏览(37)
  • VUE3父子组件传参

    父传子 父组件 template    sonComponent :sendValue=\\\"value(//传递的值)\\\"/sonComponent /template //引入组件 import sonComponent from \\\"XXXXX\\\"; 子组件 //定义名字与父组件对应 const props = defineProps({   sendValue:{type: String,default:\\\'\\\'}  }) 子传父 子组件 // 定义发送 const emit = defineEmits([\\\'sendValue\\\']) //发送(在想

    2024年02月07日
    浏览(42)
  • vue3-父子组件间通信

    在实际业务开发的过程中,我们时常会遇到组件间的通信问题,比如:父子组件间通信、同级组件间通信等。本篇文章中主要介绍父子组件间通信。父子组件间通信主要有以下常见形式: 方案 父组件向子组件 子组件向父组件 props/emits props emits v-model/emits v-model emits ref/emits

    2024年02月05日
    浏览(60)
  • 20230628----重返学习-自定义指令的玩法和作用-对象新增属性不能响应的问题-Vue组件中的data属性-Vue生命周

    面试题:自定义指令的玩法和作用 面试题:Vue怎么用 vm.$set() 解决对象新增属性不能响应的问题 ? 面试题:Vue 组件中的 data 为什么必须是函数? 面试题:谈谈你对 Vue2 生命周期的理解? 面试题:简单说一下 $nextTick 的作用及实现原理? 面试题:computed 和 watch 的区别和运用

    2024年02月11日
    浏览(57)
  • Vue3父子组件相互调用方法

    下面演示均为使用 setup 语法糖的情况! 参考网址:https://cn.vuejs.org/api/sfc-script-setup.html#defineexpose 子组件需要使用defineExpose对外暴露方法,父组件才可以调用! 1.子组件 2.父组件 3.测试结果 1.父组件 2.子组件 3.测试结果 今天的分享就到这里啦~~ 如有错误,欢迎随时雅正。

    2024年02月11日
    浏览(52)
  • vue3 父子组件传值 记录

    最近这个组件之间传值用的较多,我这该死的记性,总给忘记写法,特此记录下 补充:LeftView.vue 是父组件; Video.vue 是子组件 Video.vue 子组件 LeftView.vue 父组件 第一步 创建bus.js文件 第二步 分别在需要相互传参的组件中引入bus.js文件,并相互传参

    2024年02月11日
    浏览(42)
  • VUE3+TS(父子、兄弟组件通信)

    目录 父传子值、方法(子调用父值、方法) 子传父值(父调用子值) 父读子(子传父)(父调用子值、方法) 兄弟(任意组件)通信 引入Mitt来完成任意组件通信 1、统一规范写法,通过在子组件标签上绑定属性和值,来传递到子组件,子组件再通过defineProps来接收,先给其

    2023年04月08日
    浏览(47)
  • vue3父子组件相互调用方法详解

    在vue3项目开发中,我们常常会遇到父子组件相互调用的场景,下面以setup语法糖格式详细聊聊父子组件那些事儿。

    2024年02月11日
    浏览(41)
  • vue3 常用的组件互相通信(父子、兄弟、爷孙、任意组件)

    目录 前言:目前组件通信方法有好多种,我这挑选一部分来讲 1、父传子 2、子传父 3、兄弟之间通信 3.1、父组件充当中间件 3.2、全局事件总线—EventBus 4、爷孙之间通信 5、任意组件、全局 方案 父传子 子传父 props / emits props emits v-model / emits v-model emits ref / emits ref emits provi

    2024年02月15日
    浏览(40)
  • Vue3父子组件间传参通信

    本文主要是记录Vue3在setup语法糖下的父子组件间传参的四种方式 Vue3+TypeScript 父组件传值给子组件主要是由父组件为子组件通过v-bind绑定数值,而后传给子组件;子组件则通过defineProps接收使用。 如下为父组件 Father.vue 如下为子组件Son.vue 父组件 Father.vue 中在调用 Son.vue 这个子

    2024年01月19日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包