应用台导航页
  • 主页
  • 博客
  • 知识库
  • 工作台
  • 集萃
  • 友链
  • 关于
我构建新pwa的通用提示词

我构建新pwa的通用提示词

技术
更新于 2026-05-14
— 1792 字
返回

技术栈

  • 状态管理:zustand 做全局状态管理,要做状态持久化与“恢复”,使用 persist 中间件,将必要 UI 状态保存在本地
  • 基础组件 shadcn ui
  • pwa 还需要处理 Service Worker。用 @serwist/next ,参考 https://serwist.pages.dev/docs/next/getting-started https://serwist.pages.dev/docs/next/turbo

按需使用:

  • 轮播图:Embla Carousel
  • 灯箱:Lightbox(灯箱)库 —— Yet Another React Lightbox (YARL)

状态与导航

模态框的开关、应用功能的选择等跟路由高度相关的“状态”,,要充分利用软导航机制,遵从 Modals as Routes交给 URL 来控制。而其他真正的 “全局状态”,使用 zustand。

要主动采用以 URL 为驱动的平行/拦截路由”。既保留 SPA 的流畅感(Client-side Transition),又利用 Next.js 的服务端能力。

​不同场景下的导航实现方式参考:

需求场景推荐方案理由
全应用级导航next/link + Layout利用内置的预渲染和代码分割,体验接近 SPA 但性能更优。
弹窗/抽屉/详情覆盖Parallel + Intercepting Routes解决“刷新即丢失状态”的痛点,同时保持 URL 同步。
实时筛选/仪表盘控制URL Params (Shallow Updates),用 nuqs 这个库保证交互的即时性,同时允许用户分享当前状态的链接。
极高频的局部 UI 切换React State (Client Component)避免任何网络开销,纯内存操作。

注意:

  • 不要尝试在 App Router 中安装 react-router-dom。这会破坏 Next.js 的缓存机制(Router Cache)和服务器组件(RSC)的优势。
  • 善用 useTransition:在进行路由跳转或 Server Action 时,包裹在 startTransition 中,可以避免 UI 冻结,并允许用户在加载期间继续交互。
  • Parallel Routes 是需要 default.tsx 的
  • Layout 隔离:如果你希望导航时某个侧边栏不重新渲染,请确保它放在 layout.tsx 而非 page.tsx 中。

国际化

用 next-intl 做国际化,效果:

  1. URL 驱动,不进行自动重定向,由用户自主选择,页面 header 要有Language Switcher,
  2. 要做软提醒:如果通过 JavaScript 的 navigator.language 检测到用户语言与当前页面不符,在顶部弹出一个小横幅(Banner),询问用户是否切换,如果用户关掉横幅,则继续停留,不再干扰。
  3. 一旦用户选定了语言,要能在客户端持久化记忆语言偏好,客户端自动跳转到对应语言页面。
  4. 要有静态SEO优化,在 HTML 头部设置 <link rel="alternate" hreflang="x" href="...">,告诉搜索引擎你支持多语言。
  5. manifest 也要国际化
  6. 需要考虑的,既然用了 next-intl , useRouter , useParams 等,需要从 i18n/routing 下面引入。另外,一些特殊的 url 需要排除,比如 api 、 serwist/sw.js 等

pwa 化

  1. 要有安装引导 (Promotion):不要等待浏览器弹出安装提示。监听 beforeinstallprompt 事件,提供“安装应用”的按钮。

体验优化

用户完成操作,比如某个 Entity 的添加后,要有反馈,比如使用 sonner

SEO

  • 要有 sitemap 、robots.txt
  • 要有社交媒体图片等
  • meta tags 尽可能全

字体

中文标题文字,使用明朝汇文体。

算了,用思源宋体吧

注意一下链接换成用 loli.net 的镜像

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@200..900&display=swap" rel="stylesheet">

中文段落文字需要比较优美的字体的地方使用霞鹜文楷字体

html
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/satouriko/LxgwWenKai_Webfonts@v1.101/dist/LXGWWenKai-Regular.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/satouriko/LxgwWenKai_Webfonts@v1.101/dist/LXGWWenKai-Bold.css" />

交互

删除等操作按钮收到 contextmenu 或者 dropdown 中去

对合集的管理,尽量考虑使用 contextmenu 来允许右键、长按选择操作

其他要求

  1. 要添加 vercel analysis
  2. 如果是中文应用,字体资源要保证中国大陆能正常加载

相关内容

  • 我是如何搭建家庭服务器的

    我是如何搭建家庭服务器的

    更新于2026-06-18

  • FRP 部署教程

    FRP 部署教程

    更新于2026-06-18

  • 为服务器配置科学上网

    为服务器配置科学上网

    创建于2026-06-17

  • 一个小而美的书摘播放器

    一个小而美的书摘播放器

    更新于2026-06-10

  • 【待整理】在 VPS 上部署 Umami

    【待整理】在 VPS 上部署 Umami

    创建于2026-06-10

文章大纲

  • 技术栈
  • 状态与导航
  • 国际化
  • pwa 化
  • 体验优化
  • SEO
  • 字体
  • 交互
  • 其他要求

选项
文章 ID: 507

相关内容

  • 我是如何搭建家庭服务器的

    我是如何搭建家庭服务器的

    更新于2026-06-18

  • FRP 部署教程

    FRP 部署教程

    更新于2026-06-18

  • 为服务器配置科学上网

    为服务器配置科学上网

    创建于2026-06-17

  • 一个小而美的书摘播放器

    一个小而美的书摘播放器

    更新于2026-06-10

  • 【待整理】在 VPS 上部署 Umami

    【待整理】在 VPS 上部署 Umami

    创建于2026-06-10

dors logoDors

Dors 是花野猫开发为知识工作者打造的数字花园应用,包含的博客、个人记事本、及其他实用功能。

花园

  • 花坛——博客
  • 果园——知识库

工坊——作者开发的实用工具

  • 小记
  • 秒切——一键按秒分割视频
  • 中国重点高校地理位置可视化网站
  • 中国行政区划数据查询平台
  • excel 重命名工具

misc

  • 生活章程
  • 画廊
  • just have fun!

© 2022 - present. All Rights Reserved.滇ICP备2025063395号-1

花野猫打造