zarm
zarm copied to clipboard
Zarm 是否默认集成如 `Promise.finally`, `object.values` 之类的 polyfill
描述
Zarm 实现过程中, 如 Button 组件使用了 Promise.finally
等 api, 可能会有低版本浏览器兼容问题, 导致运行代码逻辑执行失败或者报错,
如何解决此问题
方案
方案 1
无论是否使用到该组件或者功能, 一律在 zarm 入口处添加依赖的 api 的 polyfill
方案 2
文档表格标明 : 某 feature 使用了 某 api, 兼容情况放置 caniuse 外链 用户自行决定并再自己的项目中手动引入 polyfill
我目前的想法是 方案 2, 需要一个文档以表格的方式指明可能有兼容问题的 api
组件 | 功能描述 | 使用到的 api | 兼容性 |
---|
然后另一个文档, 写出常见 polyfill 的接入示例, 如 promise.finally
, IntersectionObserver
等
方案2似乎更好些,维护一个兼容性列表,让用户自行选择是否需要引入 polyfill
我们引入了完整的polyfill文件来兼容低版本webview