框架

框架采取了类似微信小程序的方案,将代码分为 UI 层和逻辑层。UI 层运行在 WebView 当中,执行 DOM 操作和交互事件的响应。逻辑层执行在独立的 JS 引擎中(iOS:JavaScriptCore, android:V8;统称 JSCore)。两者的状态在底层自动实现同步。

和微信小程序相比

  1. YIS 更加的开放,可以增加自己想要的组件。
  2. YIS 使用标准的 css 和 html 技术。没有专门定制的DSL语言,学习成本更低。
  3. YIS 使用类似 React 的组件化方案。熟悉 React 开发的同学能够很轻松的上手。
  4. 开发阶段,可以直接使用 Chrome 进行开发和调试。不需要专门的调试 IDE。
  5. 自动抽取公共模块,按照页面拆包,加载编译速度更快。
  6. YIS 没有提供 app 级别的生命周期和事件,只提供页面级别的生命周期和事件。

和现有的Hy2相比

  1. YIS 抽取了公共代码部分,业务代码 siz 将会更小。
  2. YIS 分离的 UI 和逻辑层,并行初始化,首屏时间速度大大提升(骨架屏时间接近 React-Native)。
  3. 项目目录结构更加规范。
  4. YIS 使用了 WKWebView,内存占用将会大大减少。
  5. YIS 前期暂不支持浏览器应用,跨端能力暂时受限。
  6. YIS 采用了 css-module 方案,CSS 具备了 scope 能力。
  7. YIS 采取了 postcss 方案,默认支持 autoprefix 特性、cssnext 语法,如果你想要扩展更多的特性,可以自行安装更多的插件。

和RN相比

  1. 开发调试更加的便利,可以充分利用热加载能力。
  2. 视图采用的是 WebView 而非 Native 视图。用 CSS 能够达成更多的事情。
  3. 将所有的事件处理都封装在 WebView 层,并不会出现 UI 层和逻辑层事件冲突。