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

當前位置:首頁 > 科技  > 軟件

一個合理的前端應用文件結構

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

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

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

默認項目結構

默認情況下,當使用流行的前端框架之一搭建新項目時,組件結構是扁平的,并且沒有任何層次結構。U1d28資訊網——每日最新資訊28at.com

圖片圖片U1d28資訊網——每日最新資訊28at.com

本示例使用的是 Vue 的默認項目結構,但 React 對如何將文件放入文件夾也沒有意見。U1d28資訊網——每日最新資訊28at.com

這個例子使用了 Vue 的默認項目結構,但 React 也沒有對如何將文件放入文件夾提出意見。U1d28資訊網——每日最新資訊28at.com

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

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

將應用分解成多個功能

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

圖片圖片U1d28資訊網——每日最新資訊28at.com

Twitter 的主頁有很多內容。時間線是頁面的核心,被許多功能環繞,如導航、推文創建部分、帶有多個子組件的側邊欄、懸浮消息組件等。U1d28資訊網——每日最新資訊28at.com

圖片圖片U1d28資訊網——每日最新資訊28at.com

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

更精細的項目結構

從經驗來看,更好和更全面的文件結構如下所示:U1d28資訊網——每日最新資訊28at.com

圖片圖片U1d28資訊網——每日最新資訊28at.com

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

在項目根目錄下運行以下命令以創建不存在的文件夾。U1d28資訊網——每日最新資訊28at.com

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

需要注意的三件重要事項:U1d28資訊網——每日最新資訊28at.com

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

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

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

Features 文件夾

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

圖片圖片U1d28資訊網——每日最新資訊28at.com

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

上述的 index.ts 文件充當每個功能的公共 API。在從另一個領域導入內容時,應該僅通過此文件進行。這可以防止循環依賴,并且還可以更輕松地找到導入的來源。U1d28資訊網——每日最新資訊28at.com

// 不好的做法  
                

本文鏈接:http://www.tebozhan.com/showinfo-26-97295-0.html一個合理的前端應用文件結構

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

上一篇: 互聯網配置中心設計和實踐,你學會了嗎?

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

標簽:
  • 熱門焦點
  • 一加Ace2 Pro真機揭曉 鈦空灰配色質感拉滿

    終于,在經過了幾波預熱之后,一加Ace2 Pro的外觀真機圖在網上出現了。還是博主數碼閑聊站曝光的,這次的外觀設計還是延續了一加11的方案,只是細節上有了調整,例如新加入了鈦空灰
  • Raft算法:保障分布式系統共識的穩健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可復制、可冗余、可容錯”)的首字母縮寫。Raft算法是一種用于在分布式系統
  • 摸魚心法第一章——和配置文件說拜拜

    為了能摸魚我們團隊做了容器化,但是帶來的問題是服務配置文件很麻煩,然后大家在群里進行了“親切友好”的溝通圖片圖片圖片圖片對比就對比,簡單對比下獨立配置中心和k8s作為配
  • Golang 中的 io 包詳解:組合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是對Reader和Writer接口的組合,
  • K8S | Service服務發現

    一、背景在微服務架構中,這里以開發環境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網關、注冊中心、配置中心等相關服務,可以被集群外部訪問;圖片對于測試「Tes」環境或者
  • 企業采用CRM系統的11個好處

    客戶關系管理(CRM)軟件可以為企業提供很多的好處,從客戶保留到提高生產力。  CRM軟件用于企業收集客戶互動,以改善客戶體驗和滿意度。  CRM軟件市場規模如今超過580
  • 品牌洞察丨服務本地,美團直播成效幾何?

    來源:17PR7月11日,美團App首頁推薦位出現“美團直播”的固定入口。在直播聚合頁面,外賣“神槍手”直播間、美團旅行直播間、美團買菜直播間等均已上線,同時
  • 東方甄選單飛:有些鳥注定是關不住的

    作者:彭寬鴻來源:華爾街科技眼‍‍‍‍‍‍‍‍‍‍東方甄選創始人俞敏洪帶隊的“7天甘肅行”直播活動已在近日順利收官。成立后一
  • 3699元!iQOO Neo8 Pro頂配版今日首銷:1TB UFS 4.0同價位唯一

    5月23日,iQOO推出了全新的iQOO Neo8系列,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標準版搭載高通驍龍8+,而Pro版更是首發搭載了聯發科天璣9200+旗艦
Top