Now vibe coding, so learning hammer FE ?
《TanStack Router 与 Query 的最佳实践》
标签:#前端 #React #TanStackQuery #TanStackRouter #数据获取 #SSR
总结:
本文详解了 TanStack Router 与 TanStack Query 的集成方案,核心思路是将 Router 的 Loader 视为"预取触发器",让 Query 接管全局缓存。通过关闭 Router 内置缓存、在 Loader 中预取 Query、组件中使用 useSuspenseQuery 或 useQuery 的组合策略,实现数据尽早获取、避免请求瀑布,同时兼容 SSR 流式渲染。作者强调始终使用 Query Hooks 而非 useLoaderData 获取数据,以维持自动重取、缓存失效和垃圾回收的正常运作。
文章要点:
1. Router 自带缓存仅限单路由,Query 缓存全局可跨路由共享,更适合多路由共用数据场景
2. 在 Loader 中预取 Query 能让请求在组件渲染前甚至 JS 加载前就开始,配合 prefetch:'intent' 还能实现悬停预加载
3. 关闭 Router 缓存(defaultPreloadStaleTime: 0)避免与 Query 缓存冲突,让 Query 独掌缓存策略
4. 推荐用 useSuspenseQuery 配合 Router 的默认 Error/Pending 边界,组件只需专注"阳光路径"
5. Loader 中不 await 更灵活:useSuspenseQuery 实现阻塞加载,useQuery 实现延迟加载,由组件自主决定
6. SSR 场景下 useSuspenseQuery 更友好,支持流式渐进渲染;useQuery 需在 Loader 中 await 否则服务端无 markup
7. 切勿用 useLoaderData 替代 Query Hooks,否则会导致自动重取、失效刷新和垃圾回收全部失效
8. 将 Loader 视为"事件处理器"——只负责触发预取、不返回数据,是渐进优化性能的好心智模型
URL:https://tkdodo.eu/blog/tan-stack-router-and-query
标签:#前端 #React #TanStackQuery #TanStackRouter #数据获取 #SSR
总结:
本文详解了 TanStack Router 与 TanStack Query 的集成方案,核心思路是将 Router 的 Loader 视为"预取触发器",让 Query 接管全局缓存。通过关闭 Router 内置缓存、在 Loader 中预取 Query、组件中使用 useSuspenseQuery 或 useQuery 的组合策略,实现数据尽早获取、避免请求瀑布,同时兼容 SSR 流式渲染。作者强调始终使用 Query Hooks 而非 useLoaderData 获取数据,以维持自动重取、缓存失效和垃圾回收的正常运作。
文章要点:
1. Router 自带缓存仅限单路由,Query 缓存全局可跨路由共享,更适合多路由共用数据场景
2. 在 Loader 中预取 Query 能让请求在组件渲染前甚至 JS 加载前就开始,配合 prefetch:'intent' 还能实现悬停预加载
3. 关闭 Router 缓存(defaultPreloadStaleTime: 0)避免与 Query 缓存冲突,让 Query 独掌缓存策略
4. 推荐用 useSuspenseQuery 配合 Router 的默认 Error/Pending 边界,组件只需专注"阳光路径"
5. Loader 中不 await 更灵活:useSuspenseQuery 实现阻塞加载,useQuery 实现延迟加载,由组件自主决定
6. SSR 场景下 useSuspenseQuery 更友好,支持流式渐进渲染;useQuery 需在 Loader 中 await 否则服务端无 markup
7. 切勿用 useLoaderData 替代 Query Hooks,否则会导致自动重取、失效刷新和垃圾回收全部失效
8. 将 Loader 视为"事件处理器"——只负责触发预取、不返回数据,是渐进优化性能的好心智模型
URL:https://tkdodo.eu/blog/tan-stack-router-and-query
《Datatype:用字体把文字变成图表的魔法》
标签:#前端 #OpenType #可变字体 #数据可视化 #字体设计
总结:
Datatype 是一款开源可变字体,利用 OpenType 连字替换技术,将纯文本表达式(如
文章要点:
- **纯字体驱动,零 JS 依赖**:利用 OpenType 的
- **三种图表,一句话搞定**:支持条形图
- **可变字体,随意调节**:通过 `wdth`(字宽 50–150)和 `wght`(字重 100–900)两个轴,可以像调音量一样控制图表的间距和线条粗细,适配不同排版场景
- **轻到不可思议**:WOFF2 格式仅 73KB,TTF 4MB,覆盖 Google Fonts Latin Core 字符集,对网页性能几乎零负担
- **开箱即用,跨平台友好**:Web 端一行 `@font-face` 即可;桌面端安装 TTF 后,在 Adobe 等支持 OpenType 连字的软件里直接粘贴文本就能出图
- **开源可定制**:基于 Python + fontTools 构建,提供完整的构建脚本和开发服务器,方便开发者二次修改或扩展新的图表类型
文章URL:https://github.com/franktisellano/datatype
标签:#前端 #OpenType #可变字体 #数据可视化 #字体设计
总结:
Datatype 是一款开源可变字体,利用 OpenType 连字替换技术,将纯文本表达式(如
{b:30,70,50,90}`)实时渲染为条形图、折线图和饼图,无需任何 JavaScript 或图片资源。它通过 CSS 的 `font-variation-settings 控制字宽和字重,WOFF2 仅 73KB,兼容所有现代浏览器,为网页和桌面应用提供了一种零依赖、高性能的轻量级数据可视化方案。文章要点:
- **纯字体驱动,零 JS 依赖**:利用 OpenType 的
calt`(上下文替换)和 `liga`(标准连字)特性,把 {b:1,3,7}` 这类文本直接变成条形图,不需要加载任何图表库或图片- **三种图表,一句话搞定**:支持条形图
{b:...}`、折线图 {l:...} 和饼图 {p:...}`,每种最多支持 20 个数据点,数值范围 0–100,语法简单得像在聊天- **可变字体,随意调节**:通过 `wdth`(字宽 50–150)和 `wght`(字重 100–900)两个轴,可以像调音量一样控制图表的间距和线条粗细,适配不同排版场景
- **轻到不可思议**:WOFF2 格式仅 73KB,TTF 4MB,覆盖 Google Fonts Latin Core 字符集,对网页性能几乎零负担
- **开箱即用,跨平台友好**:Web 端一行 `@font-face` 即可;桌面端安装 TTF 后,在 Adobe 等支持 OpenType 连字的软件里直接粘贴文本就能出图
- **开源可定制**:基于 Python + fontTools 构建,提供完整的构建脚本和开发服务器,方便开发者二次修改或扩展新的图表类型
文章URL:https://github.com/franktisellano/datatype