
博客
博文
(53)

全局提示队列实战:用 Zustand Slice 驱动 Mantine Notifications
在 fetch 封装函数里直接调用 notifications.show() 用起来没什么问题——直到你需要测试这条错误路径而不想 mock Mantine 的内部实现,或者五个并发请求同时触发五条完全相同的"会话已过期"提示时需要去重。把所有提示先路由到一个 Zustand…
ReactTypeScript
14 分钟阅读·发布于 2026-08-31


深入
个性化只有在"该展示哪个变体"这个决定发生在页面真正渲染之前才会显得够快——这正是 Uniform 的 Quirks 机制要解决的问题。 Quirk 到底是什么 Quirk 是一个带有解析函数的命名信号:给定当前请求上下文,它返回一个值(如果无法确定就返回 undefined )。Uniform…
Uniform.devTypeScript
13 分钟阅读·发布于 2026-08-28


Next.js 下 Zustand 的 persist 中间件:修复 SSR 水合不一致问题
给 Zustand store 加上 persist 中间件,部署上线之后你第一个遇到的,大概就是满屏的水合警告——服务端渲染出一个结果,客户端渲染出另一个结果,React 对此非常不满。 为什么会出现不一致 persist 会把 Zustand store 的数据存到 localStorage…
NextjsReactTypeScript
13 分钟阅读·发布于 2026-08-25


流式渲染 Server Component:Suspense 边界与 Mantine 骨架屏的正确用法
只要仪表盘里有一个区块要等上游接口 1.2 秒,一个笼统的顶层 Suspense 边界就会把整页都拖下水。流式渲染的意义在于:快的部分立刻送达,慢的部分之后补上——但前提是边界放得对。 App Router 的流式渲染模型 App Router 在服务端渲染 Server Component,并把 HTML…
ReactNextjsTypeScript
11 分钟阅读·发布于 2026-08-22


用 Next.js Route Handlers 做
在 Server Component 里直接拉取 Uniform.dev 的个性化内容,对首屏渲染来说完全没问题——但一旦某个客户端筛选或切换 tab 的操作,需要在 hydration 完成之后拿到_最新_的个性化内容,你就已经没有 Server Component…
NextjsUniform.devTypeScript
15 分钟阅读·发布于 2026-08-19
我的标签