用途:该技能面向 Deno 环境下的前端开发,基于 Fresh 2.x(Deno 的 Web 框架)、Preact(轻量 React 替代方案)与可选的 Tailwind CSS。Fresh 采用 island 架构:页面在服务端渲染,只有交互部分(island)向浏览器发送 JavaScript。
适用场景:创建新的 Fresh 应用、构建交互式 island 组件、编写服务端渲染页面与路由、集成本地 Tailwind 样式、在 island(客户端)与组件(仅服务端)之间做选择、使用 Preact hooks 与 signals。若用户询问 Next.js、React Native、Vue、Svelte、Angular 等其它框架,应直接按对应框架回答,不要推荐 Fresh 替代方案;仅在用户明确涉及 Fresh 或 Fresh/Deno 项目时才使用本技能。
主要能力:文件式路由(routes/ 目录,如 routes/about.tsx、动态 [slug]、可选 [[version]]、通配 [...path]、路由组);通过 routes/_app.tsx 定义整体布局;异步服务端组件;两种数据获取方式——推荐的 handler 加 { data: {...} } 模式,以及简单场景的异步页面组件;define.handlers() 类型安全处理器;单参数 ctx 上下文对象(req、url、params、state、config、route、error,以及 ctx.render、ctx.redirect、ctx.next);中间件(routes/_middleware.ts);API 路由与 HttpError;islands/ 中可水合的交互组件;Preact hooks 与 @preact/signals 响应式状态。
使用方式:用 deno run -Ar jsr:@fresh/init 创建项目,deno task dev 启动(http://127.0.0.1:5173/);用 deno add 添加 JSR 或 npm 依赖。Fresh 2.x 使用 import { App } from "fresh",通过 vite.config.ts 开发,无 manifest 文件、无独立 dev 入口、无独立配置文件,处理器为单 (ctx) 参数,错误页为统一的 _error.tsx。Tailwind 为可选项,需同时安装 deno add npm:@tailwindcss/vite npm:tailwindcss,在 vite.config.ts 中配置 tailwindcss() 插件,并在 CSS 中 @import "tailwindcss",再由 client.ts 引入。
限制:island 的 props 必须可序列化,不能传函数;island 应尽量小以减少发送到客户端的 JavaScript,优先使用服务端组件。必须始终使用 Fresh 2.x 模式,不要展示已废弃的 1.x 语法(如美元符号导入路径、旧的独立错误页命名),即使在对比中也只展示正确的 2.x 写法。资料的 Tailwind 示例在结尾处不完整,该部分的后续用法暂未提供。