如果需要选择基于Vue技术栈的移动跨平台框架,是Weex吗?反应-原生?还是Flutter?无疑,与后两者相比,因为你现在有了更熟练的Vue基础,如果其他条件相同,Weex无疑是最好的选择;但在实际项目中,Weex真的适合移动跨平台开发吗?Weex的开发效率和质量是否满足需求?
一、发展环境
在本次Weex应用开发中,我的开发环境配置如下:
工具名称版本否。Node.js 8.2.1 NPM 5.3.0安卓工作室3.2 Weex 2 . 0 . 0-beta . 17 JDK 1.8 Weex-UI 0 . 6 . 14 II。Weex简介
2.1.Weex概念
“写一次,到处跑”的定义是这样的:写一个vue前端,编译成性能好的apk和ipa(当然现实有时候很骨感)。基于Vue设计模式,支持web、android和ios,原生端也将控件和操作转化为原生逻辑,提升用户体验。在weex中,主要包括JS Bridge、Render和Dom三个部分,分别对应WXBridgeManager、WXRenderManager和WXDomManager,这三个部分由WXSDKManager管理。其中JS Bridge和Dom都在独立的HandlerThread中运行,而Render在UI线程中运行。JS桥主要用于与JS实现的双向通信,比如将JS的dom结构转移到Dom线程。Dom主要用于解析、映射、添加dom等。最后通知UI线程更新,而Render负责在UI线程中渲染dom。Weex的所有标签都不是真正的控件,生成并存储在JS代码中的dom最终由Native端解析,然后由对应的Native控件呈现,比如安卓中标签对应的WXTextView控件。Weex中的文件是。默认情况下是vue,但是vue文件不能直接运行,所以vue会编译成。js格式的文件,而Weex SDK将负责加载和渲染这个js文件。Weex能跨三端的原理是代码模式、编译过程、模板组件、数据绑定、生命周期的上层语法在开发过程中是一致的。不同的是,在JS框架层的末端,web平台和Native平台对Virtual DOM的解析方式不同。
2.2创建Weex项目
weex提供了一个命令行工具weex-toolkit来帮助开发者使用Weex,可以用来快速创建一个空项目,初始化iOS和Android开发环境,调试、安装插件等操作。
我们可以通过以下步骤创建一个基本的Weex项目:
(1)安装weex工具包工具
Npm安装weex-toolkit -g(2)创建新项目
Weex创建weex_project(3)安装项目依赖关系
Cd weex_projectnpm安装(4)启动项目
npm启动项目启动后,浏览器窗口会自动打开项目主页,如下图所示:
(5)添加原生安卓平台
Weex平台添加android(6)运行以下命令在模拟器或真实设备上启动android应用程序:
Weex运行android2.3,运行Weex项目
2.3.1.启动服务器应用程序
(1)输入目录weex _ project/后端/并安装服务器应用程序所需的插件包:
$ npm安装(2)启动服务器应用程序
$ npm运行开始2.3.2 .启动Weex应用程序
(1)如果您尚未安装weex工具,您可以运行以下命令来安装它:
$ npminstall-gweix-toolkit (2)安装项目所需的插件包:
$ npm安装(3)启动项目:
$ npm运行启动三。Weex常用的VSCode插件
Weex为VSCode提供了一些常用的插件,可以提高开发效率:
Weex-new-project-用于在VSCode中创建一个Weex项目;