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