useDependency
获取依赖
Type
function useDependency<T>( provider: DependencyIdentifier<T>, options?: { self: boolean } ): T
Details
获取依赖并返回,如果没有 self 为 true,则会一直从组件树中向上寻找依赖
Example
获取上级的依赖
<script setup lang="ts"> import { useDependency } from 'vdi' import { CountService } from './count.service' //因为是从该组件注入,所以需要self来获取自身依赖 const countService = useDependency(CountService) </script> <template> 父组件依赖: {{ countService.count }} <button @click="countService.inc">count+</button> </template>
获取自身依赖,需要配合onProvider,并且 useDependency self 为 true
<!--Child.vue --> <script setup lang="ts"> import { onProvider, useDependency } from 'vdi' import { CountService } from './count.service' onProvider([[CountService]]) //获取本身的依赖,虽然跟父组件是同一个,但是因为是自身重新注入的值也是不一样的 const ChildCountService = useDependency(CountService, { self: true }) </script> <template> <div class="child"> 子组件: {{ ChildCountService.count }} <button @click="ChildCountService.inc">count+</button> </div> </template>