區別:前後端不分離中,前端頁面看到的效果都是由後端控制,由後端渲染頁面或重定向,即後端需要控制前端的展示,前端與後端的耦合度很高。前後端分離中,後端僅傳回前端所需的數據,不再渲染HTML頁面,不再控制前端的效果,前端與後端的耦合度相對較低。
本文操作環境:windows10系統、thinkpad t480電腦。
相關推薦:《程式設計影片》
一、前後端分離的概念
1、前後端分離
- 前後端分離是一種架構模式,說通俗點就是後端專案裡面看不到頁面
(JSP | HTML)
,後端給前端提供接口,前端調用後端提供的REST
風格接口就行,前端專注寫頁面(html|jsp)
和渲染(JS|CSS|各種前端框架)
;後端專注寫程式碼就行。 - 前後端分離的核心:後台提供數據,前端負責顯示
1、軟體架構模式
最熟悉MVC
設計模式,Model—View-Controller
模型-視圖-控制器
- 它是怎麼運作的?通俗來說:你在頁面輸入一個網址
(請求-Request)
,這個網址跑到哪裡去了呢?就去呼叫介面(REST風格)
,這個介面其實就是存取後端的一段程式碼(方法),後端有很多方法。 - 如何決定訪問的是哪個方法?就是介面定義好的,例如:
177.25.26.7/idp/user/login
,這裡面的idp
就表示一
個服務(一個工程),user
表示一個類,login
表示具體要呼叫的那個方法,你一旦回車,就直接呼叫了後端這個方法,後端這個方法就去資料庫(MySQL| Oracle|其他)
取數據,資料庫表中每一行數據就表示一個對象,也就是一個JavaBean
,最後用pojo
方式存到集合框架( List|Map|Set|等)
中,方法把這個集合回,那麼呼叫這個介面的結果就是會響(Response)
給你一個結果集,前端就拿到了這個數據,然後透過頁面(html|Jsp)
展現出來,這個使用者看到的就是View
層做的事情。
2、前後端分離的原因
#以前,聽說TDD (Test-driven development,測試驅動開發)
可以改善程式碼的質量,我們便實作了TDD
;接著,聽說BDD (Behavior-driven development,行為驅動開發)
可以交付符合業務需求的軟體,我們便實作了BDD;後來,聽說DDD (Domain-driven design,領域驅動設計)
可以分離業務程式碼與基礎程式碼,我們便實作了DDD
。今天,聽說了前後端分離很流行,於是我們就實施了前後端分離——這就是傳說中的 HDD(Hype-driven Development,熱鬧驅動開發)
。
過程:TDD -》 BDD -》 DDD =》 HDD
3、前後端分離的優點
前後端分離則可以很好的解決前後端分工不均的問題,將更多的交互邏輯分配給前端來處理,而後端則可以專注於其本職工作,例如提供API
接口,進行權限控制以及進行運算工作。而前端開發人員則可以利用nodejs
來建立自己的本機伺服器,直接在本機開發,然後透過一些外掛程式將api
請求轉送到後台,這樣就可以完全模擬線上的場景,並且與後台解耦。前端可以獨立完成與使用者互動的整個過程,兩者都可以同時開工,不互相依賴,開發效率更快,而且分工比較均衡。
總結優點如下:
- 提升開發效率
- 完美應對複雜多變的前端需求
- 增強程式碼可維護性
二、前後端分離與前後端不分離的差異
##1、前後端不分離
- 在前後端不分離的應用模式中,前端頁面看到的效果都是由後端控制,由後端渲染頁面或重定向,也就是後端需要控制前端的展示,前端與後端的耦合度很高。
- 這個應用程式模式比較適合純網頁應用,但當後端對接
App
時,App
可能不需要後端回傳一個HTML
網頁,而只是資料本身,所以後端原本返回網頁的介面不再適用於前端App
應用,為了對接App
#後端還需再開發一套接口。
2、前後端分離
- #在前後端分離的應用模式中,後端只傳回前端所所需的數據,不再渲染
HTML
頁面,不再控制前端的效果。至於前端使用者看到什麼效果,從後端請求的資料如何載入到前端中,都由前端自己決定,網頁有網頁的處理方式,App
有App
的處理方式,但無論哪種前端,所需的資料基本上相同,後端僅需開發一套邏輯對外提供資料即可。 - 在前後端分離的應用模式中 ,前端與後端的耦合度相對較低。
- 在前後端分離的應用模式中,我們通常將後端開發的每個視圖都稱為一個接口,或者
API
,前端透過存取接口對資料進行增刪改查。
想要查閱更多相關文章,請造訪PHP中文網! !
以上是前後端分離和不分離的區別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

useState()isaReacthookusedtomanagestateinfunctionalcomponents.1)Itinitializesandupdatesstate,2)shouldbecalledatthetoplevelofcomponents,3)canleadto'stalestate'ifnotusedcorrectly,and4)performancecanbeoptimizedusinguseCallbackandproperstateupdates.

ReactispupularduetoItsOmpontement,基於虛擬,虛擬詞,Richecosystem和declarativedation.1)基於組件的harchitectureallowslowsforreusableuipieces。

todebugreactapplicationsefectefectionfection,usethestertate:1)proppropdrillingwithcontextapiorredux.2)使用babortControllerToptopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRaceeDitions.3)intleleassynChronOusOperations.3)

usestate()inrectallowsStateMagementionInfunctionalComponents.1)ITSIMPLIFIESSTATEMAGEMENT,MACHECODEMORECONCONCISE.2)usetheprevcountfunctionToupdateStateBasedonitspReviousViousViousvalue,deveingingStaleStateissues.3)

selectUsestate()forsimple,獨立的variables; useusereducer()forcomplexstateLogicorWhenStatedIppedsonPreviousState.1)usestate()isidealForsImpleupDatesLikeToggGlikGlingaBglingAboolAboolAupDatingacount.2

useState優於類組件和其它狀態管理方案,因為它簡化了狀態管理,使代碼更清晰、更易讀,並與React的聲明性本質一致。 1)useState允許在函數組件中直接聲明狀態變量,2)它通過鉤子機制在重新渲染間記住狀態,3)使用useState可以利用React的優化如備忘錄化,提升性能,4)但需注意只能在組件頂層或自定義鉤子中調用,避免在循環、條件或嵌套函數中使用。

useUsestate()forlocalComponentStateMangementighatighation; 1)usestate()isidealforsimple,localforsimple.2)useglobalstate.2)useglobalstateSolutionsLikErcontExtforsharedState.3)

ReusableComponentsInrectenHanceCodainainability and效率byallowingDevelostEsteSeTheseTheseThesAmeCompOntionActActRossDifferentPartSofanApplicationorprojects.1)heSredunceRedUndenceNandSimplifyUpdates.2)yensureconsistencyInuserexperience.3)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器