给博客做一个流式 AI 对话浮窗:SSE + 组合式函数
在博客右下角加一个会「打字机式」吐字的 AI 助手。前端用 Server-Sent Events 接收流式响应,用一个 useAiChat 组合式函数收敛全部状态,匿名 token 存在 localStorage。
前端工程641

Nuxt / Vue / React 前端与后台:SSR、运行时配置、组件与交互、请求层封装、语言与浏览器。
在博客右下角加一个会「打字机式」吐字的 AI 助手。前端用 Server-Sent Events 接收流式响应,用一个 useAiChat 组合式函数收敛全部状态,匿名 token 存在 localStorage。
前端工程641

前端 SPA 怎么在「同一份构建产物」里适配不同环境的 API 地址?答案不是构建期替换,而是容器启动时把环境变量渲染进一个 app-config.js,挂到 window 上供运行时读取。
前端工程400

SSR 应用有两种「请求 API」的视角——服务端渲染时走容器内网,浏览器水合后走公网域名。用 Nuxt runtimeConfig 的 public / 私有分区优雅地表达这件事。
前端工程380

12-factor 的「一次构建、多处运行」说起来简单,落到前端镜像就是一个问题:配置该在构建期还是运行期注入?我用容器启动时 envsubst 渲染配置的方式,让一个镜像跑遍所有环境。
前端工程260

后台要同时访问主站 API 和独立的 AI 服务,两个后端鉴权方式、响应结构都不同。用「每个后端一个 axios 实例 + 拦截器」分层封装,把鉴权、信封解包、401 登出收敛到一处。
前端工程361

移动端音乐播放器偶尔盖住 AI 对话浮窗。根因是第三方库写死了一个很高的 z-index。复盘这次问题,顺便聊聊一套页面里该如何统一管理「层级」。
前端工程350

早年开发常用「带 --disable-web-security 启动 Chrome」来绕过跨域,但它治标且危险。讲清 CORS 到底是什么、为什么会跨域,以及本地开发的正确解法(代理 / 后端 CORS)。
前端工程1270

TypeScript 不只是「给 JS 加类型」,它是一套结构化类型系统。从基础类型、接口、泛型到联合/交叉类型,建立写 TS 的核心心智,附 tsconfig 关键开关。
前端工程1240

Hooks 让函数组件也能拥有状态与生命周期。一篇从 useState、useEffect 讲到依赖数组陷阱与自定义 Hook 复用逻辑的上手指南,附常见误区。
前端工程1440
