框架
框架采取了类似微信小程序的方案,将代码分为 UI 层和逻辑层。UI 层运行在 WebView 当中,执行 DOM 操作和交互事件的响应。逻辑层执行在独立的 JS 引擎中(iOS:JavaScriptCore, android:V8;统称 JSCore)。两者的状态在底层自动实现同步。
和微信小程序相比
- YIS 更加的开放,可以增加自己想要的组件。
- YIS 使用标准的 css 和 html 技术。没有专门定制的DSL语言,学习成本更低。
- YIS 使用类似 React 的组件化方案。熟悉 React 开发的同学能够很轻松的上手。
- 开发阶段,可以直接使用 Chrome 进行开发和调试。不需要专门的调试 IDE。
- 自动抽取公共模块,按照页面拆包,加载编译速度更快。
- YIS 没有提供 app 级别的生命周期和事件,只提供页面级别的生命周期和事件。
和现有的Hy2相比
- YIS 抽取了公共代码部分,业务代码 siz 将会更小。
- YIS 分离的 UI 和逻辑层,并行初始化,首屏时间速度大大提升(骨架屏时间接近 React-Native)。
- 项目目录结构更加规范。
- YIS 使用了 WKWebView,内存占用将会大大减少。
- YIS 前期暂不支持浏览器应用,跨端能力暂时受限。
- YIS 采用了 css-module 方案,CSS 具备了 scope 能力。
- YIS 采取了 postcss 方案,默认支持 autoprefix 特性、cssnext 语法,如果你想要扩展更多的特性,可以自行安装更多的插件。
和RN相比
- 开发调试更加的便利,可以充分利用热加载能力。
- 视图采用的是 WebView 而非 Native 视图。用 CSS 能够达成更多的事情。
- 将所有的事件处理都封装在 WebView 层,并不会出现 UI 层和逻辑层事件冲突。