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页面回退或关闭,发送请求不中断问题

    vue页面回退或关闭,发送请求不中断问题

    这篇文章主要介绍了vue页面回退或关闭,发送请求不中断问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Props传参v-for后TS报错对象类型是unknow的解决方案

    Props传参v-for后TS报错对象类型是unknow的解决方案

    这篇文章主要介绍了Props传参v-for后TS报错对象类型是unknow的解决方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • 详解一次Vue低版本安卓白屏问题的解决过程

    详解一次Vue低版本安卓白屏问题的解决过程

    这篇文章主要介绍了详解一次Vue低版本安卓白屏问题的解决过程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • vue3简单封装input组件和统一表单数据详解

    vue3简单封装input组件和统一表单数据详解

    最近有一个需求是很多个表单添加,编辑等操作,会用到很多input输入框,所以就想把input进行简单封装,这篇文章主要给大家介绍了关于vue3简单封装input组件和统一表单数据的相关资料,需要的朋友可以参考下
    2022-05-05
  • 使用Vue3和Plotly.js打造一个3D图在线展示的实现步骤

    使用Vue3和Plotly.js打造一个3D图在线展示的实现步骤

    三维网格图广泛应用于科学可视化、医学成像、工程设计等领域,用于展示复杂的数据结构和空间分布,本文给大家介绍了使用Vue3和Plotly.js打造一个3D图在线展示的实现步骤,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-07-07
  • Vue项目中使用WebUploader实现文件上传的方法

    Vue项目中使用WebUploader实现文件上传的方法

    WebUploader是由 Baidu WebFE(FEX) 团队开发的一个简单的以 HTML5为主 , FLASH为辅 的现代 文件上传组件 。这篇文章主要介绍了在Vue项目中使用WebUploader实现文件上传,需要的朋友可以参考下
    2019-07-07
  • Vue 子组件传父组件 $emit更新属性方式

    Vue 子组件传父组件 $emit更新属性方式

    这篇文章主要介绍了Vue 子组件传父组件 $emit更新属性方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue.js实现数据响应的方法

    Vue.js实现数据响应的方法

    这篇文章主要介绍了Vue.js实现数据响应的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • vuex中Modules的使用详解

    vuex中Modules的使用详解

    本文主要介绍了vuex中Modules的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 详解vue.js+UEditor集成 [前后端分离项目]

    详解vue.js+UEditor集成 [前后端分离项目]

    本篇文章主要介绍了详解vue.js+UEditor集成 [前后端分离项目] ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07

最新评论