HOME 首頁(yè)
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營(yíng)
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    什么是前后端分離項(xiàng)目

    發(fā)布時(shí)間:2023-03-16 01:44:46     稿源: 創(chuàng)意嶺    閱讀: 887        問(wèn)大家

    大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于什么是前后端分離項(xiàng)目的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。

    開(kāi)始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫(xiě)出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁(yè)版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    本文目錄:

    什么是前后端分離項(xiàng)目

    一、Web項(xiàng)目開(kāi)發(fā)為何要走前后端分離模式?

    如果是問(wèn)“什么是正確的前后端分離”,我還真不敢回答,生怕自己的理解有什么偏差;但是問(wèn)怎么“理解前后端分離”,那我可以結(jié)合自身的工作,談?wù)勎覍?duì)前后端分離的理解,也歡迎大家提出不同的理解。

    我07年參加工作就是做企業(yè)級(jí)項(xiàng)目的開(kāi)發(fā),那時(shí)候的一些項(xiàng)目都只有一個(gè)包,沒(méi)有什么代碼規(guī)范,業(yè)務(wù)邏輯散落在各處,甚至是JSP中直接訪問(wèn)數(shù)據(jù)庫(kù)并做業(yè)務(wù)處理。

    后來(lái)逐漸有了一些規(guī)范,頁(yè)面就是頁(yè)面,代碼就是代碼,很多項(xiàng)目開(kāi)始使用Ajax框架。

    發(fā)展的更進(jìn)一步,后端代碼有了分層,cotroller/service/dao,可能每個(gè)項(xiàng)目分層策略不同(三層和兩層居多),每層的叫法不同(cotroller還是action),數(shù)據(jù)從頁(yè)面到最后訪問(wèn)數(shù)據(jù)庫(kù),需要走到多個(gè)分層中。

    不過(guò)到了此階段,在企業(yè)級(jí)項(xiàng)目的開(kāi)發(fā)過(guò)程中,Java程序員依然要兼顧前后端的開(kāi)發(fā),所以前端頁(yè)面的樣子嘛,達(dá)不到美觀的程度,也就是能用。

    前后端分離有很多的好處:前端開(kāi)發(fā)和后端開(kāi)發(fā)可以各司其職,約定好接口之后就可以并行開(kāi)發(fā);后端接口可以復(fù)用,如果項(xiàng)目同時(shí)有電腦網(wǎng)頁(yè)端、移動(dòng)網(wǎng)頁(yè)端、APP端等多個(gè)入口的時(shí)候,后端可以只有一個(gè);

    帶來(lái)好處的同時(shí),也會(huì)有一些缺點(diǎn),例如:增加了架構(gòu)的復(fù)雜性,如果技術(shù)能力不足的團(tuán)隊(duì),可以考慮半分離(例如我們部門(mén)都是企業(yè)級(jí)應(yīng)用,都沒(méi)有前端開(kāi)發(fā)人員);如果是面向互聯(lián)網(wǎng)的應(yīng)用,需要搜索引擎抓取,就需要服務(wù)器端渲染;另外前后端交互的接口,也需要花時(shí)間和精力設(shè)計(jì)。

    二、分布式開(kāi)發(fā),和前后端分離是一個(gè)意思嗎?舉個(gè)例子,系統(tǒng)a中有業(yè)務(wù)層和dao層,系統(tǒng)b中有前端頁(yè)面和控制層

    首先簡(jiǎn)單說(shuō)一下:前后端分離就是前端頁(yè)面只有前端代碼,后端只負(fù)責(zé)出接口和數(shù)據(jù)庫(kù)。前后端分離的好處就是維護(hù)方便,代碼清晰,例如,現(xiàn)在有一個(gè)官方網(wǎng)站,那么前端要寫(xiě)的就是一個(gè)管理后臺(tái)和前端頁(yè)面,后端php(這里只是舉例,其他語(yǔ)言的也是一樣),需要做的是通過(guò)php寫(xiě)出數(shù)據(jù)接口,然后前端只需要通過(guò)接口來(lái)發(fā)送和返回?cái)?shù)據(jù)。然后上線的時(shí)候前端只需要把前端代碼打包上傳到服務(wù)器就可以了,混合開(kāi)發(fā)像java和jsp,它們是前端代碼和后端代碼一起寫(xiě)的,需要把代碼一起打包上傳到服務(wù)器

    三、互聯(lián)網(wǎng)項(xiàng)目為什么要前后端分離,有什么優(yōu)缺點(diǎn)?

    前端承擔(dān)營(yíng)運(yùn),后端承擔(dān)管理。功能不一樣沒(méi)有什么優(yōu)缺點(diǎn)。

    四、前后端分離項(xiàng)目——登錄Token校驗(yàn)思路

    對(duì)token的校驗(yàn)分為前端和后端

    前端: Vue-Cli 2.x + axios

    后端:SpringBoot 2.3.4

    這里的話,userToken和userId放到sessionStorage是關(guān)鍵步驟

    后端主要是使用攔截器來(lái)進(jìn)行請(qǐng)求的攔截和校驗(yàn)

    解釋一下思路:

    這里的話,針對(duì)需要攔截的路徑和需要放行的路徑進(jìn)行配置就行

    關(guān)于redisTemple的引入這里就不再贅述。

    到這里為止,前后端的token就都做完了,后面就再講講前端的一些其他思路吧

    對(duì)于登錄狀態(tài)的判斷,前端可以在router.foreach上對(duì)路由進(jìn)行狀態(tài)判定,從而實(shí)現(xiàn)頁(yè)面程度的攔截(具體可以參考最后的參考文章2)

    在使用攔截器后,會(huì)發(fā)現(xiàn)前端部分請(qǐng)求會(huì)無(wú)法正常到達(dá)后端,百度后發(fā)現(xiàn)是因?yàn)?axios發(fā)送正式請(qǐng)求前會(huì)先發(fā)送一個(gè)嗅探請(qǐng)求 ,而嗅探請(qǐng)求是不攜帶我們封裝的header的,所以會(huì)導(dǎo)致部分請(qǐng)求會(huì)無(wú)法成功,解決的方式有很多種,這里的話是選擇了在后端去直接處理

    參考文章

    1、SpringBoot加了攔截器后出現(xiàn)的跨域問(wèn)題解析

    https://blog.csdn.net/mrkorbin/article/details/104066979

    2、Vue項(xiàng)目中實(shí)現(xiàn)用戶登錄及token驗(yàn)證

    https://www.cnblogs.com/web-record/p/9876916.html

    以上就是關(guān)于什么是前后端分離項(xiàng)目相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    看瑟瑟的東西用什么瀏覽器(網(wǎng)絡(luò)瑟瑟)

    互聯(lián)網(wǎng)廣告投放是做什么的(互聯(lián)網(wǎng)廣告投放是做什么的呢)

    品牌策劃營(yíng)銷有什么職位(品牌策劃營(yíng)銷有什么職位嗎)

    ai智能外呼(ai智能外呼電話系統(tǒng))

    品牌全案方案