当前位置: 首页 > news >正文

[Vue]跨组件传值

父子组件传值

        详情可以看文章

跨组件传值

        Vue 的核⼼是单向数据流。所以在父子组件间传值的时候,数据通常是通过属性从⽗组件向⼦组件,⽽⼦组件通过事件将数据传递回⽗组件。多层嵌套场景⼀般使⽤链式传递的⽅式实现provide+inject的⽅式适⽤于需要跨层级共享数据的场景,但需要注意不要滥⽤。如果组件层级较深,且需要在多个组件之间共享状态,可以使⽤ Vuex 或 Pinia 等状态管理⼯具。

        多层嵌套传值:

        现在有三个组件,也就是爷爷、爸爸、儿子三个组件。

1.在父组件中使用provide,传递需要传递的数据。格式:provide('该数据的唯一标识名',数据)

2.在子组件中使用inject,接收传递来的数据。格式:const obj = inject('该数据的唯一标识名')

<!--App.vue-->
<script setup>
import {provide, ref} from "vue";import mymiddle from './middle.vue'const myobj = ref({name: "John",email: "john@gmail.com"})provide("objId", myobj)</script>
<template><p>我是爷爷组件</p><mymiddle></mymiddle>
</template><style scoped>
</style><!--middle.vue-->
<script setup>
import foot from './foot.vue'
</script><template><p>我是爸爸组件</p><foot></foot>
</template><!--foot.vue-->
<script setup>
import {inject, ref} from "vue";const getobj = inject("objId")</script><template><p>我是儿子组件</p><p>接收的数据:{{getobj}}</p>
</template>

        注意,这个模式只能用在多层嵌套中,由祖辈往下传,不能下往上传。同样的,同级之间也不能直接传。

跨组件传函数

        传递操作与传递值一样。有一点需要注意:函数传递给后辈组件之后,在后辈组件中触发,执行的对象不会变。例如该函数是给原组件中的num的值+1,那么传递给后辈组件并在其中触发,修改的还是原组件中的num的值。

相关文章:

  • ElasticSearch导读
  • Spring AI 1.0 快速入门
  • 影刀Fun叉鸟-2048
  • Python 包管理工具核心指令uvx解析
  • 有没有其他影视app可以像群晖video station一样可以被Windows的本地网络驱动器找到
  • 啤酒游戏与系统思考
  • 大模型如何助力数学可视化?
  • Supplemental Table 5FAM49B H-SCORE与其他临床特征的关系
  • uni-app使用大集
  • Python打卡训练营day28-类的定义与方法
  • Wireshark抓包分析小程序接口请求教程
  • 前端JavaScript-嵌套事件
  • C++ stack对象创建、入栈、获取栈顶
  • 深入学习LLM开发 第二四章:向量数据库说明
  • 项目优先级不清,如何合理分配资源?
  • ubuntu24.04+RTX5090D 显卡驱动安装
  • 风车聊天室nodejs环境即可无需数据库
  • Android开发——不同布局的定位属性 与 通用属性
  • 【机器学习基础】机器学习与深度学习概述 算法入门指南
  • 高噪声下扩展边缘检测算子对检测边缘的影响
  • dede 手机网站/网站如何做seo推广
  • 房产网站排行/郑州百度推广外包
  • 婚礼礼网站如何做的/网络营销以什么为中心
  • 新乡网站建设.com/天津百度推广代理商
  • 网站建设设计哪家好/seo站外推广有哪些
  • 隧道建设网站无法登录/百度推广新手入门