這篇文章主要介紹了前后端分離和不分離有什么區(qū)別,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
玉溪網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,玉溪網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為玉溪成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的玉溪做網(wǎng)站的公司定做!
區(qū)別:前后端不分離中,前端頁面看到的效果都是由后端控制,由后端渲染頁面或重定向,即后端需要控制前端的展示,前端與后端的耦合度很高。前后端分離中,后端僅返回前端所需的數(shù)據(jù),不再渲染HTML頁面,不再控制前端的效果,前端與后端的耦合度相對較低。
一、前后端分離的概念
1、前后端分離
前后端分離是一種架構(gòu)模式,說通俗點就是后端項目里面看不到頁面(JSP | HTML)
,后端給前端提供接口,前端調(diào)用后端提供的 REST
風(fēng)格接口就行,前端專注寫頁面(html|jsp)
和渲染(JS|CSS|各種前端框架)
;后端專注寫代碼就行。
前后端分離的核心:后臺提供數(shù)據(jù),前端負(fù)責(zé)顯示
1、軟件架構(gòu)模式
最熟悉MVC
設(shè)計模式,Model—View-Controller
模型-視圖-控制器
它是怎么工作的?通俗來說:你在頁面輸入一個網(wǎng)址(請求-Request)
,這個網(wǎng)址跑到哪里去了呢?就去調(diào)用接口(REST風(fēng)格)
,這個接口其實就是訪問后端的一段代碼(方法),后端有很多方法。
如何確定訪問的是哪個方法?就是接口定義好的,比如:177.25.26.7/idp/user/login
,這里面的idp
就表示一
個服務(wù)(一個工程),user
表示一個類,login
表示具體要調(diào)用的那個方法,你一旦回車,就直接調(diào)用了后端這個方法,后端這個方法就去數(shù)據(jù)庫(MySQL|Oracle|其他)
取數(shù)據(jù),數(shù)據(jù)庫表中每一行數(shù)據(jù)就表示一個對象,也就是一個JavaBean
,最終用pojo
方式存到集合框架 (List|Map|Set|等)
中,方法把這個集合返回,那么調(diào)用這個接口的結(jié)果就是會響(Response)
給你一個結(jié)果集,前端就拿到了這個數(shù)據(jù),然后通過頁面(html|Jsp)
展現(xiàn)出來,這個用戶看到的就是View
層做的事情。
2、前后端分離的原因
在以前,聽說 TDD (Test-driven development,測試驅(qū)動開發(fā))
可以改善代碼的質(zhì)量,我們便實施了 TDD
;接著,聽說 BDD (Behavior-driven development,行為驅(qū)動開發(fā))
可以交付符合業(yè)務(wù)需求的軟件,我們便實施了 BDD;后來,聽說 DDD (Domain-driven design,領(lǐng)域驅(qū)動設(shè)計)
可以分離業(yè)務(wù)代碼與基礎(chǔ)代碼,我們便實施了 DDD
。今天,聽說了前后端分離很流行,于是我們就實施了前后端分離——這就是傳說中的 HDD(Hype-driven Development,熱鬧驅(qū)動開發(fā))
。
過程: TDD -》 BDD -》 DDD =》 HDD
3、前后端分離的優(yōu)點
前后端分離則可以很好的解決前后端分工不均的問題,將更多的交互邏輯分配給前端來處理,而后端則可以專注于其本職工作,比如提供API
接口,進行權(quán)限控制以及進行運算工作。而前端開發(fā)人員則可以利用nodejs
來搭建自己的本地服務(wù)器,直接在本地開發(fā),然后通過一些插件來將api
請求轉(zhuǎn)發(fā)到后臺,這樣就可以完全模擬線上的場景,并且與后臺解耦。前端可以獨立完成與用戶交互的整一個過程,兩者都可以同時開工,不互相依賴,開發(fā)效率更快,而且分工比較均衡。
總結(jié)優(yōu)點如下:
提升開發(fā)效率
完美應(yīng)對復(fù)雜多變的前端需求
增強代碼可維護性
二、前后端分離和前后端不分離的區(qū)別
1、前后端不分離
在前后端不分離的應(yīng)用模式中,前端頁面看到的效果都是由后端控制,由后端渲染頁面或重定向,也就是后端需要控制前端的展示,前端與后端的耦合度很高。
這種應(yīng)用模式比較適合純網(wǎng)頁應(yīng)用,但是當(dāng)后端對接App
時,App
可能并不需要后端返回一個HTML
網(wǎng)頁,而僅僅是數(shù)據(jù)本身,所以后端原本返回網(wǎng)頁的接口不再適用于前端App
應(yīng)用,為了對接App
后端還需再開發(fā)一套接口。
2、前后端分離
在前后端分離的應(yīng)用模式中,后端僅返回前端所需的數(shù)據(jù),不再渲染HTML
頁面,不再控制前端的效果。至于前端用戶看到什么效果,從后端請求的數(shù)據(jù)如何加載到前端中,都由前端自己決定,網(wǎng)頁有網(wǎng)頁的處理方式,App
有App
的處理方式,但無論哪種前端,所需的數(shù)據(jù)基本相同,后端僅需開發(fā)一套邏輯對外提供數(shù)據(jù)即可。
在前后端分離的應(yīng)用模式中 ,前端與后端的耦合度相對較低。
在前后端分離的應(yīng)用模式中,我們通常將后端開發(fā)的每個視圖都稱為一個接口,或者API
,前端通過訪問接口來對數(shù)據(jù)進行增刪改查。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享前后端分離和不分離有什么區(qū)別內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學(xué)習(xí)!