我的理解是 H5 和 flutter 的跨端方式并不相同,
H5 的底层是 webview, 即最起码的目标平台能跑 webview, 然后以此为基础补齐或统一多平台 api, 一个潜在的问题是, 由于应用依托与第三方 webview,并且 webview 还有兼容问题和性能问题
像 RN 的解决方法就是, 山不向我来, 我主动向山去, 放弃 webview 主动去单独适配各平台原生的组件, 这更进一步修复了之前的问题, 但是并没有完全解决, RN 的路子决定了, 开发者不能随意升级, 或者需要一直跟着升级, 因为目标平台的组件更新了 RN 必须跟着更新, 否则就会出问题
flutter 就吊了, 它直接喊一嗓子'适配 nm!兼容 nm!老子全部自己来', 然后对着目标平台的设计稿把所有组件全部重新做一遍, 形似但完全不是一个东西了, 现在剩下的没有兼容问题了, flutter 唯一需要考虑的就是, 后面目标平台的设计语言更新了, 他要不要跟着更新,或者直接按自己的路子更新组件
因为你说你没接触过 flutter, 我简化下上面说的:
**以 flutter 的 h5 输出为例,他的所有组件,我是说所有组件都是重新实现,拿 canvas 画出来的,你明白我意思吧,flutter 直接舍弃了目标平台的所有组件,然后自己重头来了一遍,完全解决了多端一致性的问题**
我找了个 flutter 组件库的 web 端 demo, 你可以感受下
https://bruno.ke.com/online_demo/index.html