-
判断图片类型
- 接口 请求头 accpet 字段
- 响应头 content-type image/jpeg等等
-
通过Ip 区分不同用户
-
通过 UA记录
memoizedFn
双哈希表记录-
应对传入值不固定的形式,通过 Map记录 id --
或者 通过JSON.stringfy 序列化arguments 用作key
devDependencies: 开发环境的依赖,如果仅需要开发环境使用,可以放在这里,它不会被部署到生产环境中。
dependencies: 生产环境中所必须的,以确保生产环境中需要使用。
peerDependencies: 用于指定当前包依赖其他包的 版本范围, 它不会被自动安装,相反,它由当前包的父级安装。
optionalDependencies: 可选的依赖项,这些包安装失败不会导致整个包的安装失败
封装一个监控上报SDK
需要有一个接口 用于上报
捕获:
1. 监听全局未捕获的错误
window.addEventListener('error',callback);
2. 监听多个事件,比如click\mousedown\keydown等等 来判断错误类型
3. 监测白屏
document.elementsFromPoint
let centerElements = document.elementsFromPoint( window.innerWidth / 2, window.innerHeight / 2 )
查看什么时候有内容 dom数组,如果一直没有返回值,可以细分一下16份 返回对应值
jsError
PromiseError
投放初期,页面性能比较差,进行 优化
图片、 接口、首屏、ssr、seo 、代码层面优化、 微信、客户端内嵌等几方面进行优化。
针对于低码、、
微前端、 微服务、 monorepo 经验
沙箱、微前端路由
路由机制
-
将每个子应用作为组件接入,只托管子应用的根路由。
-
二级以下的路由由子应用自己负责
-
路由抢占问题
- 通过配置basename,框架根据用户当前访问的子应用,计算出basename,这样它设置之后可以保证应用路由之间互不影响。
<BrowserRouter basename="/app">
<App />
</BrowserRouter>
-
通过router map--映射 降低维护者理解成本,建立不同子系统的映射和管理。--Codeium
-
csrf 从其他网站发起请求携带cookie 需要对应网站配置post跨站 预检请求允许携带cookie
-
私域流量治理-- 微信朋友圈--分享海报
-
虚拟号治理
-
支付逻辑改版 豆包-- pc 吊起中台支付页面、b端app内嵌吊起JSBridge 公众号-通过接口请求拿到支付pay_url 跳转支付