架构

  1. spa + node 比较简单了,真假路由的混用。比如说构建接口API,API需要独立的时候不需要跟后端牵扯。这个时候来用。一般来说服务器上就一个nginx和一个Java,然后前端打包dist丢给nginx。有些时候前端只需要一个用户头像,但是Java把所有用户信息就丢回来了。这个时候请求就很慢,想要修改Java一般是不会改的。单页就是一个假的路由,只能自己满足一下前台的页面切换,并不符合真的路由规则。这个时候就需要上node了,用弄的承载前端项目,然后node直接去连接Java,中间就有了一层proxy,代理层。比如要获取一个json,前端去请求node,node去请求Java。node去请求Java这样多了一层会不会请求就更慢了?首先node跟Java很有可能在一个机房,甚至是一台服务器上。他俩之间的请求基本都是毫秒级别,10毫秒都能拿出来,甚至100毫秒都是极限。所以不需要担心!那么再说说为什么要加这一层,首先要削减json的结果,能让前端减少请求的时常,达到很好的状态。再者node可以控制路由了,而且独立部署上线,甚至可以做非常丰富的工作,它也可以理解为一个后端。还可以打进Docer,单独的成为服务。独立控制路由,控制路由的话可以做更多的事情,比如做同构,ssr的同构。杠精又改说负载均衡啦,不安全啦。其实这里还是需要nginx的,node不会直接暴露在外的,还是需要nginx做反向代理或者负载均衡的。所以最简单的模式就是:
    1. 控制json大小(合并请求)
    2. 独立控制路由(API)
  2. mpa 纯粹的mpa。spa在性能其实有很大的弊端,vue react其实都是操作dom的库,跟jq其实没太大的区别。实际上全部做成真正的多路由,就是直出。ssr就满足了直出这一点,vue.min.js 直接引入进来,就直接用。
  3. spa + mpa 纯粹的mpa多页会重复请求资源,单页的spa只请求发生变化部分的资源。这个时候就得需要mpa的路由跟spa的东西混着用。落地页或者叫刷新的页走ssr,站内切走spa。它他们达到非常高的性能。
  4. 同构 vue 浏览器 node的成熟解决方案,next nuxt等。
  5. socket-server 给游戏或者需要实时通信提供服务。比如p2p,只吃消息。node在这方面很擅长。