Vue3 provide(父) + inject(子、子的子...)进行值的传递及显示

server/2024/9/25 15:17:50/

1、先上个图:

2、我们在App.vue下面声明了一个provide,然后子与子的子,就可以利用inject来接收这个值。

代码结构:

父的代码:App.vue

<script setup lang="ts">
import { provide, ref } from "vue";
import HelloWorld from "./components/HelloWorld.vue";// 提供响应式的值
const count = ref(0);
provide("count", count);
</script><template><div><!-- <a href="https://vitejs.dev" target="_blank"><img src="/vite.svg" class="logo" alt="Vite logo" /></a><a href="https://vuejs.org/" target="_blank"><img src="./assets/vue.svg" class="logo vue" alt="Vue logo" /></a> --><el-button type="primary" @click="count++">Primary</el-button><HelloWorld msg="Vite + Vue" /></div></template><style scoped>
.logo {height: 6em;padding: 1.5em;will-change: filter;transition: filter 300ms;
}
.logo:hover {filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {filter: drop-shadow(0 0 2em #42b883aa);
}
</style>

子的代码:HelloWorld.vue

子的子代码:

<script setup lang="ts">
import { inject } from "vue";// 注入响应式的值
const count = inject("count");
</script><template><h3 class="custom-html">sub- {{ count }}</h3>
</template><style scoped>
.read-the-docs {color: #888;
}.custom-html {background-color: #ff0;border: 1px solid #0000ff;padding: 10px;color: #000;
}
</style>

说明:子与子的子代码可以类似就行,子的代码比较多,因为之前做了一个x6的demo。

3、最终的效果:

4、最后我们总结一下:

provide(父) + inject(子、子的子...),只要是父中定义了,那么不同你有多少层,只要inject的了,都会很轻松的显示出来。

这个对于多层嵌套的时候,传值还是比较方便的。

5、官网地址:

https://cn.vuejs.org/api/composition-api-dependency-injection.html#inject


http://www.ppmy.cn/server/104340.html

相关文章

JWT-JSON Web Token

JSON Web Token&#xff08;缩写 JWT&#xff09;是目前最流行的跨域认证解决方案。 1 跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 用户向服务器发送用户名和密码。服务器验证通过后&#xff0c;在当前对话(session)里面保存相关数据&#xff0c;比如用…

[数据集][目标检测]木材缺陷检测数据集VOC+YOLO格式2383张10类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2383 标注数量(xml文件个数)&#xff1a;2383 标注数量(txt文件个数)&#xff1a;2383 标注…

微服务设计原则——高性能:存储设计

文章目录 1.读写分离2.分库分表3.动静分离4.冷热分离5.重写轻读6.数据异构参考文献 任何一个系统&#xff0c;从单机到分布式&#xff0c;从前端到后台&#xff0c;功能和逻辑各不相同&#xff0c;但干的只有两件事&#xff1a;读和写。而每个系统的业务特性可能都不一样&#…

提交试卷+智能生成评价

文章目录 1.提交试卷1.req和vo1.InterviewSubmitReq.java2.InterviewResultVO.java 2.InterviewController.java3.service1.InterviewHistoryService.java2.InterviewHistoryServiceImpl.java3.InterviewEngine.java4.JiChiInterviewEngine.java5.EvaluateUtils.java 4.测试 2.…

vue 中 dist文件夹静态是什么意思(distribution)

Vue打包为dist的命名并没有固定规定&#xff0c;dist是一个缩写词&#xff0c;代表distribution&#xff08;分发、发布&#xff09;的意思。在Vue项目中&#xff0c;将源代码经过编译、压缩等处理后打包为dist目录&#xff0c;是为了方便将项目部署到生产环境中。 具体来说&a…

阻塞队列对于实现异步日志系统的重要性

阻塞队列在多线程环境下被认为是安全的&#xff0c;是因为它内置了线程同步机制&#xff0c;能够确保多个线程在访问共享资源&#xff08;如队列&#xff09;时不会出现数据竞争问题。而非阻塞的实现方式并不是不安全的&#xff0c;但它需要开发者手动管理线程间的同步和资源保…

nginx部署vue前端打包项目

一、nginx安装 安装说明见&#xff1a;Nginx使用命令安装说明-CSDN博客 二、打包文件上传部署 将vue打包后的静态文件进行上传&#xff0c;打包后的目录如下&#xff1a; 将dist文件夹进行压缩为dist.zip&#xff0c;并将该目录打包上传至服务器的nginx目录&#xff1a; /usr…

React学习笔记,从入门到砸门

项目构建命令 npx create-react-app react-basic npx&#xff1a;node语法 create-react-app&#xff1a;项目模板 react-basic&#xff1a;项目名称 项目结构 项目打包和本地预览 项目打包npm run build本地预览&#xff08;模拟服务器运行项目&#xff09; 安装本地服务包…