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):對於循環使用組件,如列表組件可作組件緩存。