Skip to content

@kaokei/nuxt-use-vue-service

Nuxt 模块,为 @kaokei/use-vue-service 提供零配置的 API 自动导入和 DevTools 集成。

功能

  • API 自动导入:所有 @kaokei/use-vue-service 的 API(函数、装饰器、Token 类、类型)均可在 Nuxt 项目中直接使用,无需手动 import
  • DevTools 集成:自动引入 @kaokei/devtools-use-vue-service,在组件审查面板中展示容器标签和服务实例状态,无需单独配置。

安装

bash
npm install @kaokei/nuxt-use-vue-service
# 或
pnpm add @kaokei/nuxt-use-vue-service

使用

nuxt.config.tsmodules 数组中添加模块即可:

ts
// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@kaokei/nuxt-use-vue-service'],
})

添加后无需任何额外配置,即可在组件和 composable 中直接使用所有 API:

vue
<script setup lang="ts">
// 无需 import,直接使用
const counterService = useService(CounterService)
</script>

自动导入的 API 列表

以下所有 API 均自动导入,可在项目中直接使用:

类型API
ComposableuseServiceuseRootServiceuseAppService
声明函数declareProvidersdeclareRootProvidersdeclareAppProvidersdeclareAppProvidersPlugin
特殊 TokenFIND_CHILD_SERVICEFIND_CHILDREN_SERVICES
装饰器ComputedRawRunInScopeInjectSelfSkipSelfOptionalPostConstructPreDestroyInjectableLazyInjectcreateLazyInject
Token 类TokenLazyToken
工具函数autobind
类型TokenTypeFindChildServiceFindChildrenServices

配置项

通过 nuxt.config.ts 中的 useVueService 字段进行配置:

ts
export default defineNuxtConfig({
  modules: ['@kaokei/nuxt-use-vue-service'],
  useVueService: {
    devtools: false, // 禁用 DevTools 集成,默认为 true
  },
})
配置项类型默认值说明
devtoolsbooleantrue是否启用 DevTools 集成(组件审查增强)

Nuxt 版本兼容性

Nuxt 版本支持状态
Nuxt 3.x
Nuxt 4.x
Nuxt 5.x

DevTools 支持说明

本模块内置了 @kaokei/devtools-use-vue-service 的 Nuxt 客户端插件,无需单独安装 DevTools 包。启用后支持以下功能:

  • ✅ 在 Components 面板中显示 container 标签
  • ✅ 在组件审查面板右侧展示 Services 分组(服务实例的响应式状态)

由于 Nuxt DevTools 页面内嵌的 Vue DevTools 客户端为精简版,自定义 Services Inspector Tab 不会出现在页面内的 Nuxt DevTools 面板中。但通过浏览器扩展(Vue DevTools 浏览器插件)仍可正常查看 Services Inspector Tab。

在线示例