uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架。开发者通过编写 Vue.js 代码,uni-app 将其编译到iOS、Android、微信小程序等多个平台,保证其正确运行并达到优秀体验uni-app 继承自 Vue.js,提供了完整的 Vue.js 开发体验。
uni-app是一个跨端开发框架,一套代码运行多个平台,并可以使用条件编译实现不同平台的特性编码。uni-app实现了一套代码,同时运行到多个平台;一套代码,同时运行到iOS模拟器、Android模拟器、H5、微信开发者工具、支付宝小程序Studio、百度开发者工具、字节跳动开发者工具、QQ开发者工具(底部8个终端选项卡代表8个终端模拟器)
逻辑层和视图层分离的利与弊
- 窗体动画稳
- js运算不卡渲染
- 两层互相通信,有通信损耗
- 不管小程序还是app,不管app-vue还是app-nvue,都有这个两层通信损耗的问题
- 解决方案
- webview渲染的视图层,提供了一种运行于视图层的专属js,详见:renderjs
- 原生渲染的视图层,weex提供了一套bindingx机制,可以在js里一次性传一个表达式给原生层
- 在app-vue和小程序,频繁更新数据的区域做成组件,以防止少量数据更新导致整个页面更新
uni-app的数据缓存
将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。
将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。
从本地缓存中异步获取指定 key 对应的内容。
从本地缓存中同步获取指定 key 对应的内容。
从本地缓存中异步移除指定 key。
从本地缓存中同步移除指定 key。
uni-app配置tabbar
如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页。
当设置 position 为 top 时,将不会显示 icon tabBar 中的 list 是一个数组,只能配置最少2个、最多5个
tab,tab 按数组的顺序排序。
uniapp中的nvue
uni-app App端内置了一个基于 weex 改进的原生渲染引擎,提供了原生渲染能力。
在App端,如果使用vue页面,则使用webview渲染;如果使用nvue页面(native vue的缩写),则使用原生渲染。一个App中可以同时使用两种页面,比如首页使用nvue,二级页使用vue页面,hello uni-app示例就是如此。
虽然nvue也可以多端编译,输出H5和小程序,但nvue的css写法受限,所以如果你不开发App,那么不需要使用nvue。
uni-app的优缺点优点有用uni-app开发软件便宜,可以5端同时开发,相当于app、小程序、公众号那些可以全一次性搞定,平且app还可以上架,对于那种小公司来讲它的成本会比正常开发节约至少一半,原先可能开发app要十多万,但是用uni-app开发的话用五万就可以开发一个功能了。然后感觉差不多的一个app,这样的话就节约了成本。
缺点是uni-app没有原生体验,如果说app比较复杂,像涉嫌到直播、通讯这些时候就不建议用uni-app了。uni-app火爆的原因就是因为现在客户的预算普遍比较偏低,其实如果说软件逻辑不是很复杂的话用起来是没有什么问题的