背景

2018年,许多app已经支持小程序,如:百度、微信、支付宝,解放app的思想,得到了很多人的青睐,但小程序平台的日益增多, 给开发者带来了许多困扰,如果想在多个平台发布功能相同的小程序,就需要开发多套代码,效率偏低。 于是我们想通过一个目前前端比较流行的框架(Vue)作为开发语法,通过预编译的手段,同时输出多个平台的代码 (目前支持百度、微信),这就是我们今天的主角Duv。

原理

编写的Vue代码想在小程序端运行,分为看两部分:模板编译,Vue运行时

模板编译

我们基于vue-loader开发了duv-laoder,它支持将Vue的template部分转换成为小程序模板(wxml/swan), 并对不同平台小程序的api进行编译处理。

模板编译

Vue运行时

Vue运行时,首先创建小程序实例,小程序中的事件处理先到达小程序实例,通过统一的事件代理,找到Vue实例 部分对应的代码,当Vue实例setData时,不进行virtual DOM 的diff等操作,直接通过数据代理, 将修改的数据交给小程序端进行处理。

运行时

优势

  • 一套代码生成多个平台小程序
  • 性能接近原生小程序
  • 支持npm插件
  • 兼容Vue 90%以上常用语法
  • 提供脚手架工具,快速创建

results matching ""

    No results matching ""