关注公众号前端小白菜,更多前端小干货等着你喔!公众号会不定期分享前端技术,每天进步一点点,与大家相伴成长
uni-app App端内置了一个基于weex的原生渲染引擎,提供了原生的渲染能力。
想用JavaScript开发中原生的组件能力,前端有两种选择weex和react-native,两个框架分别依托于vue与react。weex依托于vue,与uni-app的设计理念一致,故而也是uni-app性能优化上的最优选择。
uni-app与本weex的区别在于uni-app本质上还是运行在webview之上的,说到底还是网页,而weex提供的是原生的渲染能力,weex实现原理简单点来说就是将weex组件映射到原生组件上,你写的是view,实际上渲染的安卓或者IOS的容器组件,故而能拥有近乎原生的渲染能力。
weex原理
放一张比较简单的weex的架构图。
图片来源网络
看图说话,不难理解。
1、WEEX通过前端构建能力将vue文件转换为打包JSBundle文件
2、通过网络或者是内置的方式加载
3、客户端提供js执行引擎,执行JSBundle文件,生成虚拟DOM
4、WEEX渲染引擎针对不同平台转换为对应的原生组件。
以上只是浅显的理解,但大致描述了WEEX能提供原生渲染能力的原因。
NVUE正是借用了WEEX的能力来提升uni-app的渲染能力。虽然NVUE可以提供不错的原生的能力,但是同时也有不少限制。
NVUE/WEEX的使用场景
纯NVU