搜尋
首頁web前端前端問答前後端分離和不分離的區別是什麼

前後端分離和不分離的區別是什麼

Dec 15, 2020 pm 04:25 PM
前後端分離

區別:前後端不分離中,前端頁面看到的效果都是由後端控制,由後端渲染頁面或重定向,即後端需要控制前端的展示,前端與後端的耦合度很高。前後端分離中,後端僅傳回前端所需的數據,不再渲染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頁面,不再控制前端的效果。至於前端使用者看到什麼效果,從後端請求的資料如何載入到前端中,都由前端自己決定,網頁有網頁的處理方式,AppApp的處理方式,但無論哪種前端,所需的資料基本上相同,後端僅需開發一套邏輯對外提供資料即可。
  • 在前後端分離的應用模式中 ,前端與後端的耦合度相對較低。
  • 在前後端分離的應用模式中,我們通常將後端開發的每個視圖都稱為一個接口,或者API,前端透過存取接口對資料進行增刪改查。

想要查閱更多相關文章,請造訪PHP中文網! !

以上是前後端分離和不分離的區別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
了解usestate():綜合反應國家管理指南了解usestate():綜合反應國家管理指南Apr 25, 2025 am 12:21 AM

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

使用React的優點是什麼?使用React的優點是什麼?Apr 25, 2025 am 12:16 AM

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

在React中調試:識別和解決共同問題在React中調試:識別和解決共同問題Apr 25, 2025 am 12:09 AM

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

反應中的usestate()是什麼?反應中的usestate()是什麼?Apr 25, 2025 am 12:08 AM

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

usestate()與用戶ducer():為您的狀態需求選擇正確的掛鉤usestate()與用戶ducer():為您的狀態需求選擇正確的掛鉤Apr 24, 2025 pm 05:13 PM

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

使用usestate()管理狀態:實用教程使用usestate()管理狀態:實用教程Apr 24, 2025 pm 05:05 PM

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

何時使用usestate()以及何時考慮替代狀態管理解決方案何時使用usestate()以及何時考慮替代狀態管理解決方案Apr 24, 2025 pm 04:49 PM

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

React的可重複使用的組件:增強代碼可維護性和效率React的可重複使用的組件:增強代碼可維護性和效率Apr 24, 2025 pm 04:45 PM

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

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

Safe Exam Browser

Safe Exam Browser

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

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

MantisBT

MantisBT

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

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器