vdi
vue3 Dependency injection And some small functions
1,422
17
| Install | |
|---|---|
npm install vdi |
|
| Latest Version: | 1.8.0 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Mar 7, 2025 |
| Links: | GitHub · npm |
Maintainer: shijinghui
Vdi
一个简单的 vue di 插件,基于@wendellhu/redi实现
破坏性更新
1.0版本删除了vue-module,overlay相关的api,如果你在使用vue-module overlay请继续留在0.5.0版本
安装
$ npm install @wendellhu/redi vdi
功能
-
更好的依赖注入
基于redi增强 vue3 依赖注入 -
简单使用,非侵入
最少两个 api 就可以完成强大的依赖注入
例子
简单使用
创建服务
// count.service.ts
import { ref } from 'vue'
export class CountService {
count = ref<number>(0)
inc() {
this.count.value++
}
}
页面注入并使用
<!--Father.vue -->
<script setup lang="ts">
import { onProvider, useDependency } from 'vdi'
import { CountService } from './count.service'
//在当前组件注入依赖
onProvider([[CountService]])
//获取提供的依赖,self为true时候获取的是当前组件的依赖
const countService = useDependency(CountService, { self: true })
</script>
<template>
{{ countService.count }}
<button @click="countService.inc">修改</button>
</template>
在子组件使用
<!--Child.vue -->
<script setup lang="ts">
import { onProvider, useDependency } from 'vdi'
import { CountService } from './count.service'
//获取提供的依赖,不需要使用self,因为父组件已经注入了依赖
const countService = useDependency(CountService)
</script>
<template>
<div class="child">
子组件: {{ countService.count }}
<button @click="countService.inc">count+</button>
</div>
</template>
License
Related Packages
@kaokei/use-vue-service
Lightweight Vue 3 state management with dependency injection, inspired by Angula...
1,891
5
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 1.8.0 | ^3.5.13 | MIT | |
| 1.7.0 | ^3.4.27 | MIT | |
| 1.6.1 | ^3.3.4 | MIT | |
| 1.6.0 | ^3.3.4 | MIT | |
| 1.5.1 | ^3.2.45 | MIT | |
| 1.5.0 | ^3.2.45 | MIT | |
| 1.4.0 | ^3.2.45 | MIT | |
| 1.3.0 | ^3.2.45 | MIT | |
| 1.2.2 | ^3.2.45 | MIT | |
| 1.2.1 | ^3.2.45 | MIT | |
| 1.2.0 | ^3.2.45 | MIT | |
| 1.1.0 | ^3.2.45 | MIT | |
| 1.0.0 | ^3.2.45 | MIT | |
| 0.5.0 | ^3.2.45 | MIT | |
| 0.4.7 | ^3.2.45 | MIT | |
| 0.4.6 | ^3.2.25 | MIT | |
| 0.4.5 | ^3.2.25 | MIT | |
| 0.4.4 | ^3.2.25 | MIT | |
| 0.4.3 | ^3.2.25 | MIT | |
| 0.4.2 | ^3.2.25 | MIT | |
| 0.4.1 | ^3.2.25 | MIT | |
| 0.4.0 | ^3.2.25 | MIT | |
| 0.3.4 | ^3.2.25 | MIT | |
| 0.3.3 | ^3.2.25 | MIT | |
| 0.3.2 | ^3.2.25 | MIT | |
| 0.3.1 | ^3.2.25 | MIT | |
| 0.3.0 | ^3.2.25 | MIT | |
| 0.2.3 | ^3.2.25 | MIT | |
| 0.2.2 | ^3.2.25 | MIT | |
| 0.2.1 | ^3.2.25 | MIT |
Showing the latest 30 of 38. See every release on npm