H5單頁面應用(SPA)架構總結


2021-4-29 15:04:31 星期四

功能還在不斷完善中, 點擊預覽

源碼查看: Gitee

如需試用后台,請發郵件到 954861399@qq.com 告知

一: 前端

1. 架構圖

 

  

2. 原由

去年疫情期間在家沒事, 想着寫一個商城項目沉淀一下自己這些年所學的知識. 經過了一年多的反復改版, 優化, 最終做成了現在這樣一個有衡量標准的東西.

這期間走過很多彎路, 做了很多無用功. 想着做一個總結, 加深一下記憶. 也希望能幫助到大家.

3. 開發目標

我們想做一個東西出來, 最開始肯定有自己的想法: 這些個商城項目都是啥玩意兒, 這么復雜, 調用鏈這么長, 讓人怎么調試, 怎么二次開發......

隨着深入, 你會慢慢的就總結出一些規律: 做一個xx項目, 至少應該有xxx這些特點, 才能算的上是好東西.

特點 說明 舉例
代碼量少/代碼可復用 前端盡量通過js組件自動生成

1. 通過js插件+json數據生成完整的HTML代碼,

2. 每個子頁面模板中只寫入占位標簽, 加載后, 通過js替換占位標簽

(但這樣可能不利於SEO)

3. js插件盡可能自帶模板和css, 並保證不重復加載css

前端請求也要有緩存

根據不同場景緩存后端返回的結果

1. 將請求參數與返回結果緩存下來

2. 可以自由指定緩存時間

(比如管理后台一些數據就不需要緩存, 需要立馬看到編輯后的結果)

子頁面要方便管理

每個子頁面是一個單獨的模板,

而不是一大堆塞到body標簽中

1. 將子頁面分開成一個個模板, 放在template標簽中

2. 通過路由器,將模板內容加載到主顯示區域

支持隨時刷新

不管當前在哪個子頁面,

如果用戶刷新, 刷新后還是當前頁面

1. 后端要做成單入口頁面, 具體顯示哪個子頁面交由前端去控制

2. 前端路由根據當前的URL去加載子頁面

按需加載 頁面中需要哪些插件, 就加載哪些 js插件可以單獨引入
支持鈎子

比如管理后台,

每次請求接口前都能夠自動調用判斷是否登錄的方法

 
非侵入式 HTML標簽中盡量少的寫入非標屬性(例如: v-for, v-if)

1. 通過js工具(循環)渲染HTML模板,

2. 此js工具中有回調方法,支持對數據做二次加工 

3. 此js工具可以渲染有嵌套的HTML模板

4. 模板中寫入數據占位符即可

定制數據結構 根據不同需求, 返回統一模塊的不同字段

1. 比如, 請求參數中有一個是 model:'goods_info_base'

那么后端會返回一個商品的幾個基本字段, 並不會把商品的所有字段多返回

2. 需要后端支持

接口規范管理 請求的接口有盡量少, 而且有規律可循(方便管理)

1. 獲取單條記錄: /get_one_<模塊名>_<模塊ID>

2. 獲取多條記錄: /get_list_<模塊名>

3. 更改一條記錄: /update_one_<模塊名>_<模塊ID>_<字段>

4. 前端接口統一了, 對后端來說數據校驗就稍微麻煩一些

     
     
     
     
     

 

未完待續。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM