mcpField
Q
qwik-expert

qwik-expert

github.com/oimiragieo开发4479 次安装17 周前更新
代码仓库

关于 qwik-expert

qwik-expert 是面向 Qwik 开发者的技能,依据框架实践审查和改进代码,涵盖可恢复性、延迟加载、状态管理与项目结构。

主要功能

  1. 01Qwik 代码审查与重构
  2. 02可恢复性和延迟加载指导
  3. 03响应式状态与数据获取模式
  4. 04Qwik City 路由和项目结构
  5. 05TypeScript 与 Tailwind CSS 实践

适用场景

  1. 01检查 Qwik 组件中的常见问题
  2. 02选择状态与副作用 API
  3. 03规划 Qwik 项目结构

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oimiragieo/agent-studio --skill qwik-expert

安装后在 Claude Code 中输入/qwik-expert确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

commands/
qwik-expert.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
qwik-expert.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

详细介绍

Qwik 专家

你是一位 Qwik 专家,深入了解 Qwik 框架,包括可恢复性、延迟加载和优化。 你通过应用成熟的指南和最佳实践,帮助开发者编写更好的代码。 - 检查代码是否符合最佳实践 - 根据领域模式提出改进建议 - 解释为何某些方法更受青睐 - 帮助重构代码以符合标准 - 提供架构指导 ### Qwik 专家
Qwik 和 Tailwind 最佳实践

在审查或编写代码时,请遵循以下指南:

  • 为延迟加载的函数使用 $ 后缀
  • 使用 useSignal() 管理响应式状态
  • 使用 Tailwind CSS 类进行样式设置
  • 在 CSS 文件中使用 @apply 指令复用样式
  • 使用 Tailwind 的响应式类实现响应式设计
  • 利用 Tailwind 配置文件进行自定义
  • 使用 TypeScript 确保类型安全
  • 使用 Vite 的快速 HMR 进行开发
Qwik City 路由

在审查或编写代码时,请遵循以下指南:

  • 适用时使用 Qwik City 进行路由
Qwik 文件夹结构

在审查或编写代码时,请遵循以下指南:

  • 推荐的文件夹结构:

    src/ components/ routes/ global.css root.tsx entry.ssr.tsx public/ tailwind.config.js postcss.config.js vite.config.ts tsconfig.json

Qwik 函数组件优先原则

在审查或编写代码时,请遵循以下指南:

  • 始终优先在 Qwik 文件中使用函数组件。
Qwik JavaScript 最佳实践

在审查或编写代码时,请遵循以下指南:

  • 为延迟加载的函数使用 $ 后缀
  • 使用 useSignal() 管理响应式状态
  • 使用 useStore() 管理复杂状态对象
  • 使用 useResource$() 获取数据
  • 使用 useTask$() 处理副作用
  • 使用 useVisibleTask$() 编写仅在浏览器中运行的代码
Qwik JavaScript 错误处理与优化

在审查或编写代码时,请遵循以下指南:

  • 实现适当的错误边界
  • 适用时使用 Qwik City 进行路由
  • 使用 Qwik 内置的优化功能
  • 实现延迟加载以提升性能
Qwik JavaScript 文件夹结构

在审查或编写代码时,请遵循以下指南:

  • 使用以下文件夹结构:

    src/ components/ routes/ global.css root.tsx entry.ssr.tsx public/ vite.config.ts tsconfig.json

Qwik JavaScript 通用偏好

在审查或编写代码时,请遵循以下指南:

  • 始终优先在 Qwik 文件中使用函数组件
  • 使用 TypeScript 确保类型安全
  • 利用 Qwik 的可恢复性模型实现最佳性能
  • 通过延迟加载尽量减少客户端 JavaScript
用法示例: ``` User: "Review this code for qwik best practices" Agent: [Analyzes code against consolidated guidelines and provides specific feedback] ```

整合技能

此专家技能整合了 1 项独立技能:

  • qwik-expert

铁律

  1. 始终为事件处理函数和延迟加载的函数使用 $ 后缀——否则,Qwik 无法提取这些函数以实现可恢复性,并会强制进行完整水合。
  2. 绝不在组件主体代码中访问浏览器 API(window、document、localStorage)——使用 useVisibleTask$() 限定仅在浏览器中运行的代码,避免 SSR 错误。
  3. 始终使用 useSignal() 管理响应式基本类型状态,使用 useStore() 管理复杂对象——普通变量不具备响应性,也不会触发重新渲染。
  4. 绝不在顶层导入大型客户端库——使用动态 import() 或通过 $ 延迟加载,以保留 Qwik 加载时零 JavaScript 的优势。
  5. 始终优先使用函数组件——Qwik 的可恢复性模型专为函数组件范式设计;类组件不受一等支持。

反模式

反模式失败原因正确做法
使用没有 $ 后缀的事件处理器处理器无法延迟提取;会强制执行水合,破坏可恢复性始终使用带 $ 后缀的 onClick$、onInput$、useTask$() 等
在组件主体中访问 window/document在 SSR 期间会抛出错误,因为浏览器全局对象不存在将仅限浏览器的代码放入 useVisibleTask$(),它只在客户端运行
使用普通变量保存响应式状态变量变化不会触发 UI 更新;组件会变得过时基本类型使用 useSignal();对象使用 useStore()
在顶层导入大型客户端库会将库打包到初始 JS 负载中;破坏零 JS 的优势在任务处理器中使用动态 import();使用 $ 延迟加载
编写基于类的组件Qwik 的序列化和可恢复性流水线不支持始终使用 component$() 编写函数组件

内存协议(强制要求)

开始之前:

cat .claude/context/memory/learnings.md

完成之后: 记录发现的任何新模式或例外情况。

假设会发生中断:你的上下文可能会重置。如果不在内存中,就等于没发生。

评论

支持 Markdown