AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

一個合理的前端應(yīng)用文件結(jié)構(gòu)

來源: 責(zé)編: 時間:2024-06-28 17:15:51 130觀看
導(dǎo)讀在大型應(yīng)用中,最關(guān)鍵且最具挑戰(zhàn)性的方面之一就是擁有一個良好且合理的文件結(jié)構(gòu)。在考慮通過微前端將代碼庫拆分成多個應(yīng)用之前,可以遵循一些步驟來改善項目級別的架構(gòu),并在您考慮這一路徑時使過渡更容易。我們的目標是應(yīng)

在大型應(yīng)用中,最關(guān)鍵且最具挑戰(zhàn)性的方面之一就是擁有一個良好且合理的文件結(jié)構(gòu)。在考慮通過微前端將代碼庫拆分成多個應(yīng)用之前,可以遵循一些步驟來改善項目級別的架構(gòu),并在您考慮這一路徑時使過渡更容易。CZd28資訊網(wǎng)——每日最新資訊28at.com

我們的目標是應(yīng)用某種模塊化方法,使代碼庫更容易理解,通過為各個功能設(shè)置邊界,減少代碼耦合和副作用。CZd28資訊網(wǎng)——每日最新資訊28at.com

默認項目結(jié)構(gòu)

默認情況下,當(dāng)使用流行的前端框架之一搭建新項目時,組件結(jié)構(gòu)是扁平的,并且沒有任何層次結(jié)構(gòu)。CZd28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片CZd28資訊網(wǎng)——每日最新資訊28at.com

本示例使用的是 Vue 的默認項目結(jié)構(gòu),但 React 對如何將文件放入文件夾也沒有意見。CZd28資訊網(wǎng)——每日最新資訊28at.com

這個例子使用了 Vue 的默認項目結(jié)構(gòu),但 React 也沒有對如何將文件放入文件夾提出意見。CZd28資訊網(wǎng)——每日最新資訊28at.com

  • assets:存儲應(yīng)用中使用的靜態(tài)資產(chǎn),如圖像、字體和 CSS 文件。
  • components:包含可重用的 Vue 組件。推薦使用扁平層次結(jié)構(gòu)。
  • main.js:作為應(yīng)用的入口點,啟用 Vue 并配置插件或附加庫。
  • App.vue:表示應(yīng)用的根組件,作為其他組件的容器并充當(dāng)主要模板。

我們通過實踐發(fā)現(xiàn),對于大型項目,這種架構(gòu)很快就會失控。需要某種模塊化方法來輕松定位給定的文件,為各個功能設(shè)置邊界,并避免組件的緊密耦合。CZd28資訊網(wǎng)——每日最新資訊28at.com

將應(yīng)用分解成多個功能

將應(yīng)用分解成多個功能任何大型應(yīng)用都會被分解成多個獨立的功能。識別它們并不總是容易和直接的,但經(jīng)過一段時間和經(jīng)驗之后會變得更好。我們一起嘗試將一個流行的應(yīng)用分成多個部分作為練習(xí)。CZd28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片CZd28資訊網(wǎng)——每日最新資訊28at.com

Twitter 的主頁有很多內(nèi)容。時間線是頁面的核心,被許多功能環(huán)繞,如導(dǎo)航、推文創(chuàng)建部分、帶有多個子組件的側(cè)邊欄、懸浮消息組件等。CZd28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片CZd28資訊網(wǎng)——每日最新資訊28at.com

將構(gòu)成這些功能的所有組件放在同一個文件夾中是不可維護的,即使使用 IDE 的快速查找選項,定位其中一個組件也會非常困難。CZd28資訊網(wǎng)——每日最新資訊28at.com

更精細的項目結(jié)構(gòu)

從經(jīng)驗來看,更好和更全面的文件結(jié)構(gòu)如下所示:CZd28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片CZd28資訊網(wǎng)——每日最新資訊28at.com

  • components:所有跨整個應(yīng)用使用的共享組件。
  • composables:所有共享的 composables。
  • config:應(yīng)用配置文件。
  • features:包含所有應(yīng)用功能。我們希望將大部分應(yīng)用代碼放在這里。稍后會詳細說明。
  • layouts:頁面的不同布局。
  • lib:應(yīng)用中使用的不同第三方庫的配置。
  • pages:應(yīng)用的頁面。
  • services:共享的應(yīng)用服務(wù)和提供者。
  • stores:全局狀態(tài)存儲。
  • test:與測試相關(guān)的 mock、幫助程序、工具和配置。
  • types:共享的 TypeScript 類型定義。
  • utils:共享的實用函數(shù)。
  • assets:靜態(tài)資源。

在項目根目錄下運行以下命令以創(chuàng)建不存在的文件夾。CZd28資訊網(wǎng)——每日最新資訊28at.com

mkdir -p src/{components,composables,config,features,layouts,lib,pages,services,stores,test,types,utils,assets}

需要注意的三件重要事項:CZd28資訊網(wǎng)——每日最新資訊28at.com

Pages 文件夾:頁面文件夾已經(jīng)在上下文和構(gòu)建工具(如 webpack 或 Vite)將創(chuàng)建的實際塊方面進行了一些模塊化。將所有頁面放在一個地方非常有幫助,但其中的邏輯應(yīng)保持最低限度。CZd28資訊網(wǎng)——每日最新資訊28at.com

Features 文件夾:為了更容易的維護和擴展,我們希望將大部分應(yīng)用代碼放在 features 文件夾中。每個功能文件夾應(yīng)包含特定功能的領(lǐng)域代碼。CZd28資訊網(wǎng)——每日最新資訊28at.com

共享內(nèi)容:在一個理想的世界中,我們不應(yīng)該有共享組件、composables、stores 和 services,所有內(nèi)容都應(yīng)該放在相應(yīng)的功能文件夾中。不幸的是,在實際項目中,這無法避免,但我們應(yīng)該提前計劃,并在將內(nèi)容添加到這些文件夾時格外小心。CZd28資訊網(wǎng)——每日最新資訊28at.com

Features 文件夾

正如前面提到的,我們的大部分應(yīng)用應(yīng)該放在 features 文件夾中,分為多個子目錄。CZd28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片CZd28資訊網(wǎng)——每日最新資訊28at.com

  • api:所有的 fetch 邏輯都放在這里。這將 API 和 UI 解耦。
  • components:特定功能的組件。
  • composables:特定功能的 composables。
  • stores:狀態(tài)管理代碼。多個子模塊是預(yù)期的,實際上是被鼓勵的。
  • types:特定功能的 TypeScript 類型定義。
  • index.ts:這是功能的入口點。它充當(dāng)功能的公共 API,并且應(yīng)該只導(dǎo)出應(yīng)該為應(yīng)用程序其他部分公開的內(nèi)容。

上述的 index.ts 文件充當(dāng)每個功能的公共 API。在從另一個領(lǐng)域?qū)雰?nèi)容時,應(yīng)該僅通過此文件進行。這可以防止循環(huán)依賴,并且還可以更輕松地找到導(dǎo)入的來源。CZd28資訊網(wǎng)——每日最新資訊28at.com

// 不好的做法  
                

本文鏈接:http://www.tebozhan.com/showinfo-26-97295-0.html一個合理的前端應(yīng)用文件結(jié)構(gòu)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 互聯(lián)網(wǎng)配置中心設(shè)計和實踐,你學(xué)會了嗎?

下一篇: RecyclerView的緩存機制及使用策略

標簽:
  • 熱門焦點
  • 鴻蒙OS 4.0公測機型公布:甚至連nova6都支持

    華為全新的HarmonyOS 4.0操作系統(tǒng)將于今天下午正式登場,官方在發(fā)布會之前也已經(jīng)正式給出了可升級的機型產(chǎn)品,這意味著這些機型會率先支持升級享用。這次的HarmonyOS 4.0支持
  • 太卷!Redmi MAX 100英寸電視便宜了:12999元買Redmi史上最大屏

    8月5日消息,從小米商城了解到,Redmi MAX 100英寸巨屏電視日前迎來官方優(yōu)惠,到手價12999元,比發(fā)布價便宜了7000元,在大屏電視市場開卷。據(jù)了解,Redmi MAX 100
  • 摸魚心法第一章——和配置文件說拜拜

    為了能摸魚我們團隊做了容器化,但是帶來的問題是服務(wù)配置文件很麻煩,然后大家在群里進行了“親切友好”的溝通圖片圖片圖片圖片對比就對比,簡單對比下獨立配置中心和k8s作為配
  • 從零到英雄:高并發(fā)與性能優(yōu)化的神奇之旅

    作者 | 波哥審校 | 重樓作為公司的架構(gòu)師或者程序員,你是否曾經(jīng)為公司的系統(tǒng)在面對高并發(fā)和性能瓶頸時感到手足無措或者焦頭爛額呢?筆者在出道那會為此是吃盡了苦頭的,不過也得
  • JVM優(yōu)化:實戰(zhàn)OutOfMemoryError異常

    一、Java堆溢出堆內(nèi)存中主要存放對象、數(shù)組等,只要不斷地創(chuàng)建這些對象,并且保證 GC Roots 到對象之間有可達路徑來避免垃 圾收集回收機制清除這些對象,當(dāng)這些對象所占空間超過
  • 自律,給不了Keep自由!

    來源 | 互聯(lián)網(wǎng)品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺Keep正式登陸港交所,努力
  • “又被陳思誠騙了”

    作者|張思齊 出品|眾面(ID:ZhongMian_ZM)如今的國產(chǎn)懸疑電影,成了陳思誠的天下。最近大爆電影《消失的她》票房突破30億斷層奪魁暑期檔,陳思誠再度風(fēng)頭無兩。你可以說陳思誠的
  • 信通院:小米、華為等11家應(yīng)用商店基本完成APP簽名及驗簽工作

    中國信通院表示,目前,小米、華為、OPPO、vivo、360手機助手、百度手機助手、應(yīng)用寶、豌豆莢和努比亞等9家應(yīng)用商店,以及抖音和快手2家新型應(yīng)用分發(fā)平
  • 2022爆款:ROG魔霸6 冰川散熱系統(tǒng)持續(xù)護航

    喜逢開學(xué)季,各大商家開始推出自己的新產(chǎn)品,進行打折促銷活動。對于忠實的端游愛好者來說,能夠擁有一款夢寐以求的筆記本電腦是一件十分開心的事。但是現(xiàn)在的
Top