前端2月19日 15:23
现有应用如何平稳迁移到 Module Federation?把现有应用迁移到 Module Federation,最忌讳一上来就按团队边界大拆。更稳的路线是先让老应用作为 Shell 保持不动,再把低风险页面、公共组件或独立业务域拆成 remote,等发布、监控、回滚都跑顺后再扩大范围。迁移的本质不是换插件,而是改变构建、发布和依赖协作方式。
## 迁移前先看哪些条件?
先评估三件事:应用是否有清晰的业务边界,依赖版本是否可统一,发布链路是否支持多产物部署。如果当前项目连 React、路由、状态库版本都混乱,直接上联邦只会把问题放大。还要看团队协作方式:Module Federation 适合多个团队独立交付,不适合一个小团队为了“微前端”而...前端2月19日 15:24
Module Federation 未来会往哪些方向演进?Module Federation 的未来不会只停在 Webpack 插件上,它更像一种前端运行时组合协议:不同团队、不同构建工具、不同发布节奏的应用,可以在浏览器里按需拼装。趋势大致有三条:构建工具解耦、运行时治理增强、跨端与边缘场景扩展。
## 为什么会从 Webpack 走向多构建工具?
早期 Module Federation 和 Webpack 绑定很深,remoteEntry、share scope、runtime container 都来自 Webpack 的实现。现在 Vite、Rspack、Rsbuild、Rollup 生态都在补齐联邦能力,核心原因不是“换个打包器...服务端2月19日 15:44
React Native 中如何正确接入 Lottie 动画?在 React Native 里接入 Lottie,核心不是把组件渲染出来,而是把安装、资源路径、播放控制和性能边界都处理好。很多项目第一次接入能跑,后面却在 Android 缺资源、iOS 没 pod、列表卡顿、远程 JSON 加载失败上反复踩坑。建议把 Lottie 当成一种需要生命周期管理的原生视图,而不是普通图片组件。
## 安装和基础配置
常规项目先安装 `lottie-react-native`,iOS 再执行 Pod 安装。Expo 项目要确认 SDK 版本支持的 Lottie 版本,不要随意升级到不匹配的包。动画 JSON 可以用本地 `require`,也可以远程加...服务端2月19日 15:45
Lottie JSON 文件里每个字段到底表示什么?Lottie JSON 可以理解成一份“动画说明书”:顶层描述画布和时间轴,`layers` 描述图层,`ks` 描述变换属性,`shapes` 描述矢量形状,`assets` 描述图片或预合成资源。真正排查问题时,不需要背完整规范,但要能看懂几个关键字段,否则遇到动画不显示、颜色改不了、体积异常时只能反复让设计重新导出。
## 顶层字段先看时间和画布
常见顶层字段包括 `v`、`fr`、`ip`、`op`、`w`、`h`、`assets` 和 `layers`。`fr` 是帧率,`ip/op` 是起止帧,动画时长通常可以用 `(op - ip) / fr` 估算。`w/h` 是设计...服务端2月19日 15:45
Lottie 动画卡顿时应该从哪些地方优化?Lottie 性能优化不要一上来就改代码,先看它到底慢在哪里:是 JSON 太大、路径太复杂、同时播放太多,还是列表滚动时反复挂载。Lottie 本质上是把 After Effects 导出的描述数据交给运行时逐帧解释,文件越复杂,解析、布局、绘制和内存压力都会上来。比较稳的做法是先减设计稿复杂度,再做加载和播放策略,最后才调平台参数。
## 先把 JSON 变轻
最有效的优化往往发生在导出前。减少形状图层、合并静态元素、避免大量遮罩和表达式,比在客户端包一层缓存更可靠。帧率也要按场景取舍:启动页或按钮反馈用 24/30fps 通常够用,只有大面积流体动画才值得保留 60fps。图片...服务端2月19日 15:46
如何在 Web 项目里稳定集成 Lottie 动画?Web 项目里接 Lottie,看起来只是引入一个 JSON,实际要同时处理加载、渲染器、生命周期、降级和性能。很多页面一开始播放很顺,等营销活动上线、多个动画同时进首屏,就会出现掉帧、内存泄漏或移动端白屏。比较稳的做法是:先确定动画用途,再选接入方式,最后把播放控制和销毁逻辑写进组件生命周期里。
## 先选接入方式
如果只是运营页放一个循环动画,`<lottie-player>` 上手最快,HTML 里声明 src、loop、autoplay 就能跑,适合低代码页面或非复杂交互。缺点是可控性有限,深度定制和精细事件管理不如直接用 lottie-web。React、Vue、Angul...服务端2月19日 15:49
如何从 After Effects 正确导出 Lottie 动画?做 Lottie 最容易踩的坑,不在导出按钮,而在 AE 项目一开始就没按 Lottie 的边界来做。Lottie 本质是把 After Effects 动画转成 JSON,再由 Web、iOS 或 Android 的运行时解释播放;它擅长矢量形状、基础变换、遮罩和简单透明度,不擅长大量 AE 特效、复杂表达式、3D 摄像机和高分辨率位图。所以正确流程不是“动画做完再试着导出”,而是从建合成、画图层、加关键帧开始就把兼容性和性能算进去。
## 从项目设置开始控制边界
新建合成时先确认目标端:移动端图标动效通常用 300 到 600px 的正方形合成,落地页首屏动画可以按实际容器比例做...前端2月19日 15:51
存储型 XSS 和反射型 XSS 到底有什么区别?## 直接回答
存储型 XSS 和反射型 XSS 的核心区别在于恶意脚本是否被服务器保存。存储型 XSS 会把 payload 写进数据库、评论、资料、工单、消息等持久化位置,之后每个访问相关页面的用户都可能中招;反射型 XSS 通常藏在 URL 或表单参数里,服务器把它原样拼回响应,只有点击恶意链接或提交特定请求的用户会触发。一个像埋地雷,一个像递刀片,前者影响面更大,后者更依赖诱导。
防护思路也不同。存储型要重点管住“写入后再展示”的完整链路,包括后台审核页、管理端列表和导出内容;反射型要重点检查搜索、错误提示、跳转、登录回跳这类即时响应。两者共同底线是按输出上下文编码,不把用户...前端2月19日 15:52
DOM 型 XSS 为什么难发现?前端该如何检测和修复?## 直接回答
DOM 型 XSS 是漏洞发生在浏览器端的一类 XSS:页面脚本从 `location`、`postMessage`、`localStorage`、URL 参数等来源读取不可信数据,再写入 `innerHTML`、`document.write`、`eval`、`setTimeout(string)` 等危险位置,最终让浏览器执行了攻击者控制的代码。它和反射型、存储型最大的区别是,恶意内容不一定经过服务器响应,服务端日志里可能什么都看不到。
检测 DOM 型 XSS 要抓两件事:source 和 sink。source 是不可信输入从哪里来,sink 是它被送到哪里执...前端2月19日 15:53
CSP 如何防止 XSS?nonce、hash 和 strict-dynamic 怎么选?## 直接回答
Content Security Policy,简称 CSP,是浏览器执行的一套资源加载和脚本执行规则。它不能替代输出编码,也不能把脏 HTML 自动洗干净,但它能在 XSS payload 混进页面后继续拦一刀:不允许内联脚本执行,不允许加载未知域名脚本,不允许 `eval`,也能限制表单提交、iframe 嵌套和基础 URL。对安全来说,CSP 更像安全带,不是刹车;撞车前最好别撞,真撞上时它能降低伤害。
一个可落地的 CSP 通常从 Report-Only 开始,先收集违规报告,再逐步收紧。新项目优先使用 nonce 或 hash,少用 `'unsafe-inl...