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

4.8 Vue 3: provide / inject 详解

Vue 3: provide / inject 详解

1. 基本用法

在 Vue 3 的 Composition API (<script setup>) 中,provideinject 是独立的函数。

<!-- 父组件 (或祖先组件) -->
<script setup>
import { provide, ref } from 'vue'// 定义要提供的数据
const theme = ref('dark')
const userName = ref('Alice')// 使用 provide 函数提供数据
// 第一个参数是注入的 key (可以是字符串或 Symbol)
// 第二个参数是要提供的值
provide('theme', theme)
provide('userName', userName)// 也可以提供方法
function updateTheme(newTheme) {theme.value = newTheme
}
provide('updateTheme', updateTheme)
</script><template><div><h1>Parent Component (Theme: {{ theme }})</h1><ChildComponent /></div>
</template>
 
<!-- 子组件 (或任意后代组件) -->
<script setup>
import { inject, ref } from 'vue'// 使用 inject 函数注入数据
// 第一个参数是提供的 key
// 第二个参数 (可选) 是默认值
const theme = inject('theme', 'light') // 如果没找到,用 'light'
const userName = inject('userName')
const updateTheme = inject('updateTheme')// 注意:注入的 ref 是响应式的!可以直接使用
</script><template><div :class="theme"><h2>Child Component</h2><p>User: {{ userName }}</p><button @click="updateTheme('light')">Set Light Theme</button><button @click="updateTheme('dark')">Set Dark Theme</button></div>
</template>
2. 关键特性 (Vue 3)
  • 响应式是默认的且更直观

    • 如果你 provide 一个 ref 或 reactive 对象,那么在 inject 的地方,这个值是响应式的
    • 修改 provide 端的响应式数据,所有 <
http://www.dtcms.com/a/336505.html

相关文章:

  • LEA(Load Effective Address)指令
  • MACS2简介
  • 欠拟合和过拟合的特征标志,有什么方法解决,又该如何避免
  • 评测系统构建
  • 20.LeNet
  • [逆向知识] AST抽象语法树:混淆与反混淆的逻辑互换(二)
  • 2001-2024年中国玉米种植分布数据集
  • Cesium学习(二)-地形可视化处理
  • AutoSar BSW介绍
  • PyTorch 面试题及详细答案120题(01-05)-- 基础概念与安装
  • 全星质量管理 QMS:驱动制造业高质量发展的核心工具
  • 雷卯针对香橙派Orange Pi 5 Ultra开发板防雷防静电方案
  • Java研学-SpringCloud(五)
  • 如何理解“速度模式间接实现收放卷恒张力控制“
  • 题目2:使用递归CTE分析产品层级关系
  • 【从零开始学习Redis】项目实战-黑马点评D2
  • 【会议跟踪】ICRA 2021 Workshop:Visual-Inertial Navigation Systems
  • 多线程—飞机大战(加入播放音乐功能版本)
  • 【Virtual Globe 渲染技术笔记】6 着色
  • C语言---第一个C语言程序
  • Tomcat下载、安装及配置详细教程
  • Hybrid Beamforming Design for OFDM Dual-Function Radar-Communication System
  • LaTeX中表示实数集R的方法
  • 零基础搭建公网 Nginx:通过 cpolar 内网穿透服务实现远程访问
  • 朝花夕拾(四) --------python中的os库全指南
  • 【计算机数学】关于全概率和贝叶斯公式的使用场景说明
  • Linux目录相关的命令
  • 排列组合+数量+资料
  • 聊聊Vuex vs Pinia
  • MySQL执行计划解读