关于 web-vue
web-vue 是面向 Web 开发者的 Vue 3 应用开发技能,涵盖响应式逻辑、状态管理、路由以及构建和渲染流程,基于 Vue 生态工具。
主要功能
- 01Vue 3 Composition API
- 02Pinia 状态管理
- 03Vue Router 4 路由
- 04SFC 组件结构
- 05Vite 构建与开发
- 06Nuxt 3 SSR 与静态生成
适用场景
- 01构建交互式仪表盘
- 02开发带购物车的电商网站
- 03实现单页应用导航
- 04为 Vue 应用配置服务端渲染
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill web-vue安装后在 Claude Code 中输入/web-vue确认已加载。
详细介绍
web-vue
用途
此技能提供一系列工具,用于使用 Composition API 编写响应式逻辑、使用 Pinia 管理状态、使用 Vue Router 4 处理导航、使用单文件组件(SFC)进行模块化开发、使用 Vite 快速打包,以及使用 Nuxt 3 实现服务端渲染和 SEO 优化,从而构建现代 Vue 3 应用。
适用场景
创建带有响应式 UI 的交互式 Web 应用时,请使用此技能,例如仪表板、电商网站或单页应用(SPA)。当你需要高效管理状态、处理路由或使用 SSR 时,尤其是在需要通过 Vite 快速迭代的项目中,请使用此技能。
主要功能
- Composition API:在 SFC 中使用
setup()创建响应式变量,例如使用const count = ref(0);创建响应式数字。 - Pinia:使用
defineStore('main', { state: () => ({ count: 0 }), actions: { increment() { this.count++ } })定义全局状态存储。 - Vue Router 4:通过
createRouter({ history: createWebHistory(), routes: [{ path: '/', component: Home }] })设置路由。 - SFC:在 .vue 文件中使用
<script setup>、<template>和<style>部分组织组件。 - Vite:使用
vite build --mode production构建项目,生成经过优化的产物。 - Nuxt 3:使用
nuxi generate为 Vue 应用启用 SSR 并生成静态站点。
使用模式
要创建响应式计数器组件,请从 Vue 导入 ref,并在 <script setup> 中使用:
<script setup>
import { ref } from 'vue';
const count = ref(0);
function increment() { count.value++; }
</script>
<template><button @click="increment">{{ count }}</button></template>
要配置路由,请创建路由实例并将其挂载:
import { createRouter, createWebHistory } from 'vue-router';
const router = createRouter({ history: createWebHistory(), routes: [] });
app.use(router);
在 main.js 中设置 Pinia:app.use(createPinia());,并在组件中通过 useStore() 访问存储。
常用命令/API
- Vite CLI:运行
vite启动开发服务,运行vite build --base /app/指定基础路径,或运行vite preview进行本地测试。 - Nuxt 3 CLI:使用
nuxi dev进行开发,使用nuxi build构建生产版本,或使用nuxi generate导出静态站点。 - Vue API:调用
ref(value)创建响应式引用,调用reactive(object)创建代理对象,或调用computed(() => expression)创建派生状态。 - Pinia API:使用
defineStore('id', { state, getters, actions })定义存储,并通过const store = useStore('id')访问。 - Vue Router API:使用
router.push('/path')进行导航,或使用beforeEach((to, from, next) => { next(); })配置导航守卫。 如果需要 API 密钥(例如用于 Nuxt 中的外部服务),请在 .env 文件中通过$NUXT_PUBLIC_API_KEY之类的环境变量进行设置。
集成说明
在 Vue 应用中导入并使用 Pinia,即可将其集成到应用中:import { createPinia } from 'pinia'; app.use(createPinia());。对于 Vue Router,请在 Pinia 之后添加:import { createRouter } from 'vue-router'; app.use(router);。使用 Vite 时,请在 vite.config.js 中配置相关模块:
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [vue()],
resolve: { alias: { '@': '/src' } },
});
对于 Nuxt 3,请在 nuxt.config.ts 中扩展 Nuxt 配置:
export default defineNuxtConfig({
modules: ['@pinia/nuxt'],
router: { options: {} },
});
请通过 npm install vue@3 pinia vue-router@4 vite nuxt@3 安装依赖。
错误处理
通过检查 npm 日志并运行 npm install,处理依赖缺失等常见错误。对于 Composition API 中的响应式问题,请对 ref 使用 .value;例如,如果 count 未定义,请确保已在 setup 中定义。Vue Router 错误(例如路由重复)会显示在控制台中;请检查并修正路由数组。对于 Vite,如果构建因 "Module not found" 失败,请检查导入路径,或运行 vite build --debug 查看详情。对于 Nuxt,请在 serverMiddleware 中捕获 SSR 错误,或在 asyncData 中使用 try-catch:
async asyncData() {
try { const data = await fetchData(); return { data }; }
catch (error) { console.error(error); return { error: 'Fetch failed' }; }
}
具体使用示例
- 构建包含计数器和路由的简单 Vue 3 应用:使用
npm create vite@latest my-app -- --template vue创建新的 Vite 项目,通过npm install pinia添加 Pinia,设置一个 store,并在 router/index.js 中定义路由。然后,在 App.vue 中使用 store 和路由链接。 - 开发支持 SSR 的 Nuxt 3 应用:从
npx nuxi init my-nuxt-app开始,安装npm install @pinia/nuxt等依赖,在 stores/ 中创建 Pinia store,并在 pages/index.vue 中使用它。使用nuxi build构建生产版本,然后部署。
图谱关系
- 相关集群:web-dev
- 共享标签:vue、components、web
- 关联技能:其他 web-dev 技能,例如 React 相关技能或通用 Web 框架相关技能。