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

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

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.mrgr.cn/news/5497.html

相关文章:

  • iOS 开发:Object-C 和 Swift 的区别 (AI问答)
  • 三种方法加密图纸!2024如何对CAD图纸进行加密?分享给你
  • 回归预测|基于NGO-TCN-BiGRU-Attention的数据预测Matlab程序 多特征输入单输出 含基础模型
  • 知识竞赛答题设备及答题方式有哪些
  • 学习记录第二十八天
  • langchian 批次调用 prompt
  • python 面试指南
  • 何为数据专线和互联网专线?两者有什么区别?
  • 【算法基础实验】图论-最小生成树Kruskal实现
  • QT中通过TCP协议多线程的文件传输(客户端)
  • 【架构设计】-- aarch(ARM) and X86
  • [Meachines] [Easy] Active SMB未授权访问+GPP凭证泄露破解+Kerberos-管理员TGS票据破解
  • Django 后端架构开发:高效日志规范与实践
  • 20 Tkinter Spinbox 组件
  • ansible:
  • 解决执行npm run dev报错node: --openssl-legacy-provider is not allowed in NODE_OPTIONS
  • 【Datawhale AI夏令营第五期】 CV方向 Task01学习笔记 YOLO方案baseline
  • xcode如何编译python
  • 利用TeamCity实现maven项目的CI/CD
  • React Native