前后端分离架构
? 前后端分离已经成为互联网项目业界开发的标准使用方式,通过nginx+tomact的方式有效进行解耦,并且前后端分离会为以后的大型分布式框架,弹性计算架构,微服务架构,多段化服务(多种客户端 例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。
这个步骤是不可或缺的
? 核心思想是前端html页面通过ajax调用后端的restuful api 接口并使用json数据进行交互。
前后端分离的优势:
1.可以实现真正的前后端解耦,前端服务器使用nginx/tomact。前端/WEB服务器放的是css,js,图片等等一系列静态资源,前端服务器负责控制页面引用,跳转,路由
2.发现bug,可以快速定位是谁的问题,不会出现互相踢皮球的现象。页面逻 辑,跳转错误,浏览器兼容性问题,脚本错误,页面样式等问题,全部由前端工 程师来负责。接口数据出错,数据没有提交成功,应答超时等问题,全部由后端 工程师来解决。
3.减少后端服务器的压力。除了接口以外的其他所有的http请求全部转移到前端服务器上。
4.即使后端服务器暂时超时或者宕机了,前端页面也会正常访问只不过数据刷不出来而已
5.也许你也需要由微信相关的轻应用,那样你的接口完全可以公用,如果也有app相关的服务,那么只要通过一些代码重构,也可以大量复用接口,提升效率。(多端应用)
6.页面显示再多东西也不怕,因为是异步加载。
7.nginx支持页面热部署,不用重启服务器,前端升级更方便
8.增加代码的维护性和易读性(前后端混在一起的代码读起来相当费劲)
9.提升开发效率,因为可以前后端并行开发,而不是像以前的强依赖。
10.在nginx中部署证书,外网使用https访问,并且只开放443和80端口,其它端口一律关闭(防止黑客端口扫描),内网使用http,性能和安全都有保障
11.前端大量的组件代码得以复用,组件化,提升开发效率
MMVM
MMVM-> Model-View-ViewModel 的缩写。
View:视图层,也就是用户界面
Model:数据层,泛指后端进行的各种业务逻辑的处理和数据操控
ViewModel:视图数据层,用来同步View和Model
在MVVM的架构下,View和Model之间并没有直接的联系,而是通过ViewModel进行交互,Model和View之间的交互是双向的,因此View的数据的变化会同步到Model中,而Model数据的变化也会立即反应到View上
ViewModel 通过双向数据绑定把View和Model层连接起来,而View和Model之间的同步工作完全是自动的,无需人为干涉,因此开发者只需要关心业务逻辑,不需要手动操作DOM,不需要关注数据状态的同步问题