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

【vue3】依赖注 provide、inject(父组件与儿子、孙子、曾孙子组件之间的传值)

一、基本用法:


//父组件
import { ref, provide } from 'vue'
const radio = ref<string>('red')
provide('myColor',radio) //注入依赖//儿子组件、孙子组件、曾孙子组件
import { inject } from 'vue'
import type { Ref } from 'vue';
const myColor = inject<Ref<string>>('myColor') //获取

二、示例:

在这里插入图片描述


//parent.vue
<template><div><p>这是父级组件</p><el-radio-group v-model="radio"><el-radio label="red">红色</el-radio><el-radio label="yellow">黄色</el-radio><el-radio label="blue">蓝色</el-radio></el-radio-group><div class="box" :style="setStyle()"></div></div><Son></Son>
</template><script setup lang='ts'>
import { ref, provide } from 'vue'
import Son from '../components/Son.vue';
const radio = ref<string>('red')
provide('myColor',radio) //注入依赖const setStyle = ()=>{return {backgroundColor:radio.value}
}</script>
<style scoped lang='scss'>
.box {width: 200px;height: 200px;border: 1px solid #ccc;transition: all 1s;
}
</style>

//son.vue
<template><div><p>这是儿子组件</p><div class="box" :style="setStyle()"></div></div><Grandson></Grandson></template><script setup lang='ts'>import { inject } from 'vue'import type { Ref } from 'vue'; import Grandson from './Grandson.vue';const myColor = inject<Ref<string>>('myColor')//设置背景颜色-方法一const setStyle = ()=>{return {// backgroundColor:myColor?.value}}</script>
<style scoped lang='scss'>
.box{width: 200px;height: 200px;border: 1px solid #ccc;// 设置背景颜色-方法二background-color: v-bind(myColor);transition: all 1s;
}</style>

//grandSon.vue
<template><div><p>这是孙子组件</p><div class="box"></div></div></template><script setup lang='ts'>import { inject } from 'vue'const myColor = inject('myColor')</script>
<style scoped lang='scss'>
.box{width: 200px;height: 200px;border: 1px solid #ccc;background-color: v-bind(myColor);transition: all 1s;
}</style>
http://www.lryc.cn/news/205401.html

相关文章:

  • docker 部署tig监控服务
  • ETL工具与数据处理的关系
  • Flink几个性能调优
  • 后端工程进阶| 青训营笔记
  • EPPlus库的安装和使用 C# 中 Excel的导入和导出
  • 深度学习使用Keras进行迁移学习提升网络性能
  • 越流行的大语言模型越不安全
  • 搜维尔科技:伦敦艺术家利用Varjo头显捕捉盲人隐藏的梦想
  • 如何将html转化为pdf
  • ES6初步了解生成器
  • 飞桨大模型套件:一站式体验,性能极致,生态兼容
  • 【C++入门到精通】哈希 (STL) _ unordered_map _ unordered_set [ C++入门 ]
  • 创建 Edge 浏览器扩展教程(上)
  • container_of解析及应用
  • 搜维尔科技:Varjo-最自然和最直观的互动
  • Postman环境配置
  • Windows下Eclipse C/C++开发环境配置教程
  • 深入 Maven:构建杰出的软件项目的完美工具
  • 一文了解企业云盘和大文件传输哪个更适合企业传输
  • 在 history 模式下,为什么刷新页面会出现404?
  • 第二证券:“华为概念股”,怒刷13连板
  • 黑豹程序员-架构师学习路线图-百科:API接口测试工具Postman
  • 开源博客项目Blog .NET Core源码学习(5:mapster使用浅析)
  • Appium移动端自动测试框架,如何入门?
  • 外汇天眼:喜大普奔!困扰投资者的交易问题解决了!
  • UUID转16字节数组(Java)
  • 使用vue3 搭建一个H5手机端访问的项目
  • 【网络安全 --- 任意文件下载漏洞(1)】任意文件下载漏洞
  • 驱动开发day4(实现通过字符设备驱动的分布实现编写LED驱动,实现设备文件的绑定)
  • 《深入浅出.NET框架设计与实现》阅读笔记(一)