了解uni-app之前,有两个东西必须先要了解,第一个是小程序,第二个是vue.js。
小程序
微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
张小龙在朋友圈里这样解释道:小程序是一种不需要下载安装即可使用的应用,它实现了应用「触手可及」的梦想,用户扫一扫或搜一下即可打开应用。也体现了「用完即走」的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。
小程序优势
丰富的API接口:小程序里面提供了界面、网络、文件、媒体、蓝牙、重力感应、陀螺仪、地图等各种接口,让小程序能轻松实现以前H5无法实现或者很难实现的功能。 体验统一流畅:微信为小程序提供了一套自己的开发模式以及开发工具,一定程度上统一了iOS和Android体验,而且小程序打开时是会下载到本地,所以打开速度、页面切换要比H5要流畅的多。 体积轻巧:不用再去下载动辄几十M笨重的APP了,特别是一些工具类的APP。完全符合小程序的定位,用完即走。我已经卸载手机里面的中国移动、滴滴打车、下厨房、美团等等应用,这些都是一些比较低频的应用,可能几天甚至十几天有需求时才会打开它们。当然代价就是小程序只能专注一些核心功能,以减少包体积,而且微信限制了小程序单包大小最多只能2M,即使通过分包机制最多也只能达到8M。 便于传播:现在的手机APP越做越大,当你要推荐给陌生人一个APP时,需要先下载这个门槛很有可能就会阻挡一部分人。而小程序就便捷多了,直接扫描小程序码即可。小程序同样也提供一键分享给朋友、群组功能,依托于微信强大的关系链,产品上增加一些激励分享的设计的话,很容易就能形成病毒式传播。 易于开发:虽然小程序新创建了一套开发模式,但是涉及到技术相关就是前端那些,基本上会前端三板斧(html、css、javascript)就可以开动了。如果学过vue上手就更快了,因为从整体开发上来看,小程序和vue很相像,将视图、样式、逻辑分拆到三个文件里面,就是对应着html、css、javascript。并且css3一些新功能和es6的一些新语法几乎都能直接使用,其中值得一提的是,小程序引入了一个新的尺寸单位rpx,这降低了不少手机适配难度。
vue.js
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
MVVM
MVC是后端的分层开发概念 node为例:
- app.js:项目的入口文件 所有的请求先进入这里进行处理;注意:app.js并没有路由转发的功能,需要调用router.js模块进行路由分发处理
- router.js:项目的路由文件 router.js:只负责分发路由,不负责具体业务逻辑的处理;如果涉及到了业务逻辑处理操作router.js就无能为力了,只能调用controller.js模块进行业务逻辑处理
- controller.js:项目的业务处理层 controller.js:此模块中,封装了一些具体的业务逻辑处理的逻辑代码,但是,为了保证职能单一,不负责处理数据的CRUD,如果需要调用model层。router.js和controller.js合为后端开发的controller层
- Model层 职能单一,只负责操作数据库
- view层 用户访问的页面
MVVM是前段开发的分层思想,主要把每个页面分成M、V、VM,其中VM是MVVM思想的核心;因为VM是M和V之间的调度者
- M:是每个页面中单独的数据
- V:就是每个页面中的HTML结构
- VM:是个调度者,分割了M和V,每当V层想要获取保存数据的时候,都要由VM做中间的处理
生命周期
uni-app
uni-app
是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。
uni-app优点:
uni-app案例
场景说明
适用场景一:开发小程序
uniapp对多个小程序平台兼用且封装了很多便捷的API,在插件市场也有很多不错的案例工程和开发子组件。
适用场景二:轻便APP应用
APP应用页面在50个以内,已浏览页面为主且没有复杂的交互逻辑。采用uniapp时,如果页面过多会影响APP的性能,导致内存溢出。uniapp的开发语言是JavaScript,对于一些复杂的交互和逻辑,会影响APP的响应效率,同时设计原生功能调用的话,无法进行过多的自定义开发。
不适用场景一:游戏或者工具应用
游戏或者工具类的应用,有较多的交互逻辑且对APP的性能要求比较强,采用vue的uniapp相对乏力。
不适用场景二:平台类APP
平台类APP是作为其他应用的基础平台,需要较高的性能和拓展性要求,uniapp在原生的拓展性和APP的运行性能上无法满足需求。
参考文献
小程序介绍:https://www.jianshu.com/p/8f6bf7a594c8 Vue.js简介:https://www.jianshu.com/p/5eccad88257c