實現先後端分離的心得
對目前的web來講,先後端分離已經變得愈來愈流行了,愈來愈多的企業/網站都開始往這個方向靠攏。那麼,爲何要選擇先後端分離呢?先後端分離對實際開發有什麼好處呢?node
爲何選擇先後端分離
- 在之前傳統的網站開發中,前端通常扮演的只是切圖的工做,只是簡單地將UI設計師提供的原型圖實現成靜態的HTML頁面,而具體的頁面交互邏輯,好比與後臺的數據交互工做等,可能都是由後臺的開發人員來實現的,或者是前端是牢牢的耦合後臺。好比,之前淘寶的Web基本上都是基於MVC框架webx,架構決定了前端只能依賴後端。因此他們的開發模式依然是,前端寫好靜態demo,後端翻譯成VM模版,這種模式的問題就不說了,被吐槽了好久。
- 並且更有可能後臺人員直接兼顧前端的工做,一邊實現API接口,一邊開發頁面,二者互相切換着作,並且根據不一樣的url動態拼接頁面,這也致使後臺的開發壓力大大增長。先後端工做分配不均。不單單開發效率慢,並且代碼難以維護。而先後端分離的話,則能夠很好的解決先後端分工不均的問題,將更多的交互邏輯分配給前端來處理,然後端則能夠專一於其本職工做,好比提供API接口,進行權限控制以及進行運算工做。而前端開發人員則能夠利用nodejs來搭建本身的本地服務器,直接在本地開發,而後經過一些插件來將api請求轉發到後臺,這樣就能夠徹底模擬線上的場景,而且與後臺解耦。前端能夠獨立完成與用戶交互的整一個過程,二者均可以同時開工,不互相依賴,開發效率更快,並且分工比較均衡。
如何作到先後端分離
(如下的內容都是基於咱們的電影購票網站來討論的)
前端的技術框架是: vue全家桶+nodejs+express(實現的是單頁面(SPA)應用)
首先,先分清楚先後端的工做web
- 前端的工做:實現整一個前端頁面以及交互邏輯,以及利用ajax與nodejs服務器(中間層)交互
- 後端的工做:提供API接口,利用redis來管理session,與數據庫交互
咱們項目的整一個架構以下:ajax