vue3.0父子传参,子修改父数据的实现

 更新时间:2022年04月29日 10:43:13   作者:闹闹没有闹  
这篇文章主要介绍了vue3.0父子传参,子修改父数据的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

父子传参,子修改父数据

父组件

父亲传值给儿子,儿子可以修改父亲的数据(同步)

<template>
  <div>
    父组件
    {{ data }}
    <button @click="add()">修改</button>
    <hr />
    子组件:<Son />
  </div>
</template>
<script>
import Son from "./components/Son.vue";
import { provide, ref, shallowRef ,readonly,shallowReadonly} from "vue";
export default {
  components: {
    Son,
  },
  setup() {
    let data = ref("123");
    let updata = () => {
      data += "==";
    };
    let add = ()=>{
      data+="=12"
    }
    provide("updata",updata);
    provide("show", data);
    return {
      data,
      updata,
      add
    };
  },
};
</script>
<style lang="less" scoped></style>

子组件

<template>
  <div>{{son}}</div>
  <button @click="updataSon(12)">更改</button>
</template>
<script>
import { ref,inject } from "vue";
export default {
  setup() {
    const son = (inject("show"));
    const updataSon = inject("updata")
    return{
        son,
        updataSon
    }
  },
};
</script>
<style lang="less" scoped></style>

父子组件传值(语法糖)

父子组件交互

<template>
    <el-icon :size="size" :color="color" @click="change">
        <component :is="name"></component>
    </el-icon>
</template>
<script setup>
import { defineProps, defineEmits, defineExpose} from 'vue'
// 定义传值类型
const props = defineProps({
    name: {
        type: String,
        required: true,
    },
    size: {
        type: String,
        default: '',
    },
    color: {
        type: String,
        default: '',
    },
})
// 定义事件名
const emit = defineEmits(['change']) 
// 触发事件
const change =()=>{
    emit('change',{name:21231,data:456})
}
defineExpose({
    change,props
})
</script>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue中PC端使用高德地图实现搜索定位、地址标记、弹窗显示定位详情(完整实例)

    vue中PC端使用高德地图实现搜索定位、地址标记、弹窗显示定位详情(完整实例)

    这篇文章主要介绍了vue中PC端使用高德地图实现搜索定位、地址标记、弹窗显示定位详情,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Vue项目中常用的工具函数总结

    Vue项目中常用的工具函数总结

    这篇文章主要给大家介绍了关于Vue项目中常用的工具函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-09-09
  • Vue3+Elementplus实现面包屑功能

    Vue3+Elementplus实现面包屑功能

    这篇文章主要为大家详细介绍了Vue3如何结合Elementplus实现面包屑功能,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考下
    2023-11-11
  • vue实现nav导航栏的方法

    vue实现nav导航栏的方法

    这篇文章主要为大家详细介绍了vue项目nav导航栏的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • vue+elementUI实现多文件上传与预览功能实战记录(word/PDF/图片/docx/doc/xlxs/txt)

    vue+elementUI实现多文件上传与预览功能实战记录(word/PDF/图片/docx/doc/xlxs/txt)

    这篇文章主要给大家介绍了关于利用vue+elementUI实现多文件上传与预览功能的相关资料,包括word/PDF/图片/docx/doc/xlxs/txt等格式文件上传,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • vue3与elementui封装一个便捷Loading

    vue3与elementui封装一个便捷Loading

    这篇文章主要介绍了vue3与elementui封装一个便捷Loading,,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Vue实现简易购物车页面

    Vue实现简易购物车页面

    这篇文章主要为大家详细介绍了Vue实现简易购物车页面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • Vue3子组件watch无法监听父组件传递的属性值的解决方法

    Vue3子组件watch无法监听父组件传递的属性值的解决方法

    这篇文章主要介绍了Vue3子组件watch无法监听父组件传递的属性值的解决方法,文中通过代码示例讲解的讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-10-10
  • Vue3 Suspense实现优雅处理异步数据加载

    Vue3 Suspense实现优雅处理异步数据加载

    Suspense 是 Vue 3 中用于处理异步数据加载的特性,它使得在加载异步数据时可以提供更好的用户体验,下面小编就来和大家详细讲讲Suspense如何优雅处理异步数据加载吧
    2023-10-10
  • Vue混入与插件的使用介绍

    Vue混入与插件的使用介绍

    这篇文章主要介绍了Vue混入与插件的使用,mixins(混入),官方的描述是一种分发 Vue 组件中可复用功能的非常灵活的方式,mixins是一个js对象,它可以包含我们组件中script项中的任意功能选项,如data、components、methods 、created、computed等等
    2022-09-09

最新评论