腳手架搭建React項目

腳手架搭建項目

1. 認識腳手架工具

  • 1.1. 前端工程的復雜化
    • 1.1.1. 如果只是開發幾個小的demo程序,那么永遠不要考慮一些復雜的問題:
      • 比如目錄結構如何組織劃分;
      • 比如如何關鍵文件之間的相互依賴;
      • 比如管理第三方模塊的依賴;
      • 比如項目發布前如何壓縮、打包項目;
      • 等等…
    • 1.1.2. 現在的前端項目已經越來越復雜:
      • 不會在是HTML中引入幾個css文件,引入幾個編寫的js文件或者第三方的js文件這么簡單;
      • 比如css可能是使用less、sass等預處理器編寫,需要將它們轉換成普通的css才能被瀏覽器解析
      • 比如Javascript代碼不再只是編寫幾個文件中,而是通過模塊化,被組成在成敗上千個文件中,需要通過模塊化來管理它們之間的相互依賴;
      • 比如項目需要依賴很多的第三方那個庫,如何更好的管理它們(比如管理它們的依賴,版本升級等)
    • 1.1.3. 為了解決上面這些問題,需要學習一下工具;
      • 比如babel、webpack、gulp,配置它們轉規則、打包依賴、熱更新等等內容;
      • 腳手架的出現,就是幫助解決這一系列的問題的
  • 1.2. 腳手架是什么?
    • 1.2.1. 傳統的腳手架指的是建筑學的一種結構: 在搭建樓房、建筑物時,臨時搭建出來的一個框架;
    • 1.2.2. 編程中提到的腳手架(scaffold), 其實是一種工具,可以快速生成項目的工程化結構;
      • 每個項目做出完成的效果不同,但是它們的基本工程化結構是相似的;
      • 既然相似, 就沒有必要每次都從零開始搭建,完全可以使用一些工具,幫助生成基本的工程化模塊;
      • 不同的項目,在這個模塊的基礎之上進行項目的開發或者進行一些配置的簡單修改即可;
      • 這樣也可以間接保證項目的基本結構一致性,方便后期維護;
    • 1.2.3. 總結:腳手架讓項目從搭建到開發,再到部署,整個流程變得快速和便捷;
  • 1.3. 前端腳手架
    • 1.3.1. 對于現在比較流行的三大框架都有屬于自己的腳手架:
      • React的腳手架:create-react-app
      • Vue的腳手架:@vue/cli
      • Angular的腳手架:@angular/cli
    • 1.3.2. 它們的作用都是幫助我們生成一個通用的目錄結構,并且已經將所需的工程環境配置好了。
    • 1.3.3. 使用這些腳手架需要依賴什么?
      • 目前這些腳手架都是node編寫的,并且都是基于webpack的;
      • 所以必須在電腦上安裝node環境
    • 1.3.4. 主要是學習React, 所以以React的腳手架工具:create-react-app為例
    • 1.3.5. React腳手架本身需要依賴node, 所以需要安裝node環境;
      • 查看node版本,node --version
        在這里插入圖片描述

2. react-react-app

  • 2.1. 安裝create-react-app
    • npm install create-react-app -g
      在這里插入圖片描述

    • create-react-app --version
      在這里插入圖片描述

2.2. 創建react項目

  • 2.2.1. 創建React項目的命令如下

    • create-react-app 項目名稱
      • 注意:項目名稱不能包含大寫字母
      • 另外還有更多創建項目的方式,可以參考github的readme文檔(npx create-react-app my-app\npm init react-app my-app)

    在這里插入圖片描述

    在這里插入圖片描述

  • 2.2.2. 創建項目成功后,進入項目目錄,就可以將項目運行起來:

    • cd 02_learn_scaffold
    • npm run start / npm start
      在這里插入圖片描述
  • 2.2.3 目錄結構分析
    在這里插入圖片描述

    • 2.2.3.1. 目錄結構介紹
      my-app
      ├── README.md // 項目說明文件
      ├── node_modules // 存放第三方依賴包
      ├── package-lock.json // 記錄項目相關包依賴真實版本信息
      ├── package.json // 記錄項目相關包依賴信息
      ├── .gitignore // git忽略文件
      ├── public // 存放靜態資源文件
      │ ├── favicon.ico // 項目網站圖標
      │ ├── index.html // 項目入口模板文件
      │ └── manifest.json // 和Web App配置相關 (pwa應用可以把網站添加到桌面圖標,就像手機上安裝其他的app應用一樣,它作用就是想要像app一樣擁有一些東西的配置文件)
      │ └── robots.txt // 爬蟲的配置文件,用來告訴別人那些東西可以爬取,哪些不能爬取
      └── src // 存放源代碼
      ├── App.css // App組件相關的樣式
      ├── App.js // App組件的代碼文件
      ├── App.test.js // App組件的測試代碼文件
      ├── index.css // 全局的樣式文件
      ├── index.js // 整個應用程序的入口文件
      ├── logo.svg // 剛啟動項目看到的React圖標
      └── serviceWorker.js // 離線緩存配置文件
      └── reportWebVitals.js // 網頁性能監測相關的文件
      └── setupTests.js // 自動執行的測試配置文件
  • 2.2.3.2. package-lock.json文件中的react依賴依賴

    • "react": {"version": "19.1.1", // 版本號"resolved": "https://registry.npmmirror.com/react/-/react-19.1.1.tgz", // 倉庫地址"integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", //查找本地緩存,如果本地有緩存,則不會從服務器下載,直接解包本地緩存里面的東西就可以了"requires": { // 依賴另外的包...}}   
      
  • 2.2.3.3. 了解PWA

    1. 整個目錄結構都非常好理解,只是有一個PWA相關的概念;
    • 1.1. PWA的全稱是Progressive Web App,即漸進式Web應用
    • 1.2. 一個PWA應用首先是一個網頁,可以通過web技術(React/Vue等等)編寫出一個網頁應用
    • 1.3. 隨后添加上App ManifestService Worker來實現PWA的安裝和離線等功能;
      • App Manifest文件:
        • 相當于間接的把一個網站變成了一個像APP一樣的一個東西的配置文件,變成了一個桌面圖標,一點擊桌面圖標可以直接打開網站,這個就是PWA想要做的一個事情;
        • 如果想要做一個PWA應用,它就必須要求有個Manifest文件
        • Manifest文件就是關于網站想要像App一樣擁有一些東西的配置文件
        •   {"short_name": "React App", // 桌面圖標名稱"name": "Create React App Sample", // 完整名稱"icons": [ // 圖標{"src": "favicon.ico","sizes": "64x64 32x32 24x24 16x16","type": "image/x-icon"},{"src": "logo192.png","type": "image/png","sizes": "192x192"},{"src": "logo512.png","type": "image/png","sizes": "512x512"}],"start_url": ".", // 指定應用啟動URL"display": "standalone",  // 指定應用顯示模式, standalone: 表示應用以獨立應用程序的形式運行,不顯示瀏覽器的地址欄、工具欄等UI元素,提供類似原生應用的用戶體驗。"theme_color": "#000000", // 指定應用主題色"background_color": "#ffffff" // 背景色}
          
    • 1.4. 這種web存在的形式,我們也稱之為Web App
    1. PWA解決那些問題:
    • 2.1. 可以添加至主屏幕,點擊主屏幕圖標可以實現啟動動畫以及隱藏地址欄;
    • 2.2. 實現離線緩存工鞥男,即使用戶手機沒有網絡,依然可以使用一些離線功能;
    • 2.3. 實現了消息推送;
    • 2.4. 等等一系列類似于Native App相關的功能;
    1. 更多PWA相關的知識,可以參考MDN文檔
    • 3.1. 地址:https://developer.mozilla.org/zh-CN/docs/Web/Progressive_web_apps

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91299.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91299.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91299.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Golang 調試技巧:在 Goland 中查看 Beego 控制器接收的前端字段參數

🐛 Golang 調試技巧:在 Goland 中查看 Beego 控制器接收的前端字段參數 在使用 Beego 開發 Web 項目時,我們常常會在控制器中通過 c.GetString()、c.GetInt() 等方法獲取前端頁面傳過來的字段值。而在調試過程中,如何在 Goland 中…

sqli-labs:Less-2關卡詳細解析

1. 思路🚀 本關的SQL語句為: $sql"SELECT * FROM users WHERE id$id LIMIT 0,1";注入類型:數值型提示:參數id無需考慮閉合問題,相對簡單 2. 手工注入步驟🎯 我的地址欄是:http://l…

TRAE 軟件使用攻略

摘要TRAE 是一款集成了人工智能技術的開發工具,旨在為開發者提供高效、智能的編程體驗。它包括三個主要組件:TRAE IDE、TRAE SOLO 和 TRAE 插件。無論是編程新手還是經驗豐富的開發者,都可以通過 TRAE 提高工作效率和代碼質量。標題一&#x…

將開發的軟件安裝到手機:環境配置、android studio設置、命令行操作

將開發的軟件安裝到手機環境配置android studio4.1.2安裝命令行操作環境配置 注意:所有的工具的版本都需要根據當下自己的軟件需要的。 Node:14.16.0 (如果安裝了npm,可以使用npm進行當前使用node版本的更改) &#x…

Jmeter 命令行壓測、HTML 報告、Jenkins 配置目錄

Jmeter 命令行壓測 & 生成 HTML 測試報告 通常 Jmeter 的 GUI 模式僅用于調試,在實際的壓測項目中,為了讓壓測機有更好的性能,多用 Jmeter 命令行來進行壓測。 官方:Jmeter 最佳實踐 同時,JMeter 也支持生成 HT…

記錄幾個SystemVerilog的語法——覆蓋率

1. 前言 通常說的覆蓋率有兩種類型:code coverage(代碼覆蓋率)和functional coverage(功能覆蓋率)。代碼覆蓋率是使用EDA工具自動從設計代碼里提取出來的,功能覆蓋率是用戶指定的,用于衡量測試設計意圖和功能進展。因此,功能覆蓋…

深度學習基礎—2

第一章、參數初始化 我們在構建網絡之后,網絡中的參數是需要初始化的。我們需要初始化的參數主要有權重和偏置,偏重一般初始化為 0 即可,而對權重的初始化則會更加重要,我們介紹在 PyTorch 中為神經網絡進行初始化的方法。 1.1 常…

PyTorch深度學習快速入門學習總結(三)

現有網絡模型的使用與調整 VGG — Torchvision 0.22 documentation VGG 模型是由牛津大學牛津大學(Oxford University)的 Visual Geometry Group 于 2014 年提出的卷積神經網絡模型,在 ImageNet 圖像分類挑戰賽中表現優異,以其簡…

是否需要買一個fpga開發板?

糾結要不要買個 FPGA 開發板?真心建議搞一塊,尤其是想在數字電路、嵌入式領域扎根的同學,這玩意兒可不是可有可無的擺設。入門級的選擇不少,全新的像 Cyclone IV、Artix 7 系列,幾百塊就能拿下,要是去二手平…

【模型細節】MHSA:多頭自注意力 (Multi-head Self Attention) 詳細解釋,使用 PyTorch代碼示例說明

MHSA:使用 PyTorch 實現的多頭自注意力 (Multi-head Self Attention) 代碼示例,包含詳細注釋說明:線性投影 通過三個線性層分別生成查詢(Q)、鍵(K)、值(V)矩陣: QWq?x,KWk?x,VWv?xQ W_qx, \quad K W_kx, \quad V W_vxQWq??x,KWk??x…

PGSQL運維優化:提升vacuum執行時間觀測能力

本文是 IvorySQL 2025 生態大會暨 PostgreSQL 高峰論壇上的演講內容,作者:NKYoung。 6 月底濟南召開的 HOW2025 IvorySQL 生態大會上,我在內核論壇分享了“提升 vacuum 時間觀測能力”的主題,提出了新增統計信息的方法&#xff0c…

神奇的數據跳變

目的 上周遇上了一個非常奇怪的問題,就是軟件的數據在跳變,本來數據應該是158吧,數據一會變成10,一會又變成158,數據在不斷地跳變,那是怎么回事?? 這個問題非常非常的神奇,讓人感覺太不可思議了。 這是這段時間,我遇上的最神奇的事了,沒有之一,最神奇的事,下面…

【跨國數倉遷移最佳實踐3】資源消耗減少50%!解析跨國數倉遷移至MaxCompute背后的性能優化技術

本系列文章將圍繞東南亞頭部科技集團的真實遷移歷程展開,逐步拆解 BigQuery 遷移至 MaxCompute 過程中的關鍵挑戰與技術創新。本篇為第3篇,解析跨國數倉遷移背后的性能優化技術。注:客戶背景為東南亞頭部科技集團,文中用 GoTerra …

【MySQL集群架構與實踐3】使用Dcoker實現讀寫分離

目錄 一. 在Docker中安裝ShardingSphere 二 實踐:讀寫分離 2.1 應用場景 2.2 架構圖 2.3 服務器規劃 2.4 啟動數據庫服務器 2.5. 配置讀寫分離 2.6 日志配置 2.7 重啟ShardingSphere 2.8 測試 2.9. 負載均衡 2.9.1. 隨機負載均衡算法示例 2.9.2. 輪詢負…

maven的阿里云鏡像地址

在 Maven 中配置阿里云鏡像可以加速依賴包的下載,尤其是國內環境下效果明顯。以下是阿里云 Maven 鏡像的配置方式: 配置步驟:找到 Maven 的配置文件 settings.xml 全局配置:位于 Maven 安裝目錄的 conf/settings.xml用戶級配置&am…

大語言模型信息抽取系統解析

這段代碼實現了一個基于大語言模型的信息抽取系統,能夠從金融和新聞類文本中提取結構化信息。下面我將詳細解析整個代碼的結構和功能。1. 代碼整體結構代碼主要分為以下幾個部分:模式定義:定義不同領域(金融、新聞)需要抽取的實體類型示例數據…

Next實習項目總結串聯講解(一)

下面是一些 Next.js 前端面試中常見且具深度的問題,按照邏輯模塊整理,同時提供示范回答建議,便于你條理清晰地展示理解與實踐經驗。 ? 面試講述結構建議 先講 Next.js 是什么,它為什么比 React 更高級。(支持 SSR/SSG/ISR,提升S…

React開發依賴分析

1. React小案例: 在界面顯示一個文本:Hello World點擊按鈕后,文本改為為:Hello React 2. React開發依賴 2.1. 開發React必須依賴三個庫: 2.1.1. react: 包含react所必須的核心代碼2.1.2. react-dom: react渲染在不同平…

工具(一)Cursor

目錄 一、介紹 二、如何打開文件 1、從idea跳轉文件 2、單獨打開項目 三、常見使用 1、Chat 窗口 Ask 對話模式 1.1、使用技巧 1.2 發送和使用 codebase 發送區別 1.3、問題快速修復 2、Chat 窗口 Agent 對話模式 2.1、agent模式功能 2.2、Chat 窗口回滾&撤銷 2.3…