Express,基于Node.js平台,快速、开放、极简的 web 开发框架。html
自从2009年第一次提交,通过多年发展,是最为成熟的框架。使用内置的路由,模板等模块能够很简单地架起一个服务。前端
Express 是基于 callback 来组合逻辑。Callback 有两大硬伤,一是不可组合,二是异常不可捕获。形成callback hell问题。vue
koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架,是node框架发展的趋势。与express不一样点有:node
koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量的函数库,使得编写应用更轻松,能够自行选择功能中间件,更体现了模块化。web
基于node ,ES6的新特性,promise等处理异步函数,能够免除重复繁琐的回调嵌套,并极大地提高错误处理的效率。express
对比:一、express发布时间早,相比koa发展较为成熟。二、对异步回调的处理,koa可使用async/await 从语法层面避免回调地狱问题。三、Koa体量小,文档清晰,有更好的编码体验。后端
ThinkJS 从 3.0 开始,框架底层基于 Koa 2.x 实现,兼容 Koa 的全部功能。promise
特性:浏览器
Egg.js 为企业级框架和应用而生。缓存
特性:
从特性来看,两个框架都基于Koa,使用ES6/7语法处理异步回调,兼容中间件模式,支持可扩展的插件机制,提供便捷的本地开发调试方法。
Node服务主要提供接口和页面渲染服务。
使先后端开发工做分离,具备提高开发效率,页面的接口调用速度,首屏时间,利于SEO优化等优点。
基于 node 的模板框架比较流行的有jade、EJS、handlebars、Nunjucks等
对模板引擎的基本指望是:
一、所见即所得,可直接拿前端切好的页面看成模板
二、语法简单,学习成本低,易上手
三、基础功能完善,如标签转义、字段过滤等
四、扩展性强,速度不要太慢
Jade/pug代码简洁,靠行间缩进区分标签,学习成本稍高。
选取node框架,中间件,分层构建路由、接口服务、页面模板、静态资源。在node环境中实现路由控制,业务逻辑。
静态页面及资源:利用http协议,在浏览器端配置较长时间的缓存
动态内容页面:采用微缓存,在服务端设置较短的缓存时间
含有接口数据的页面:异步渲染,提早将模板组合渲染成半成品页面,在用户访问时,调取数据结合缓存模板进行渲染。
Vue.js 是构建客户端应用程序的框架,默认状况下,能够在浏览器中输出 Vue 组件。结合Node服务,能够将同组件在服务端渲染为 HTML 字符串(静态页面),将它们直接发送到浏览器,最后在客户端初始化将静态标记"混合"为具备交互功能的应用程序。
特色:
更快的内容到达时间(time-to-content),页面到达客户端便可渲染展现,减小了客户端对于js文件的请求和编译执行时间,对于数据接口的请求时间,前端的模板解析时间。
提升开发效率,路由,模板,数据等大多在vue框架内完成,正常开发过程当中须要的技术栈比较熟悉。
更好的SEO,搜索引擎爬虫抓取工具能够直接查看彻底渲染的页面。
先后端路由渲染相结合,配合缓存策略,相比纯模板渲染具备性能优化的潜力。
缓存策略:
页面级别缓存(Page-level Caching):包含动态内容,且不是用户特定(user-specific),咱们能够利用名为微缓存的缓存策略。
组件级别缓存(Component-level Caching):对于循环使用组件,如列表组件可作组件缓存。