在這個例子中,你可以看到script標籤直接載入main.jsx。這種直接包含是與 Create React App 的主要區別,增強了對專案入口點的清晰度和控制。

1.1 依賴關係

為了確保您的腳本檔案正確加載,Vite 利用現代 ES 模組導入。確保您的 package.json 包含必要的依賴:

\\\"dependencies\\\": {  \\\"react\\\": \\\"^18.2.0\\\",  \\\"react-dom\\\": \\\"^18.2.0\\\"}

在 HTML 檔案中明確包含腳本可確保應用程式的正確載入和執行順序,從而減輕腳本載入的潛在問題。

2.main.jsx

main.jsx 檔案充當 React 應用程式的入口點。該檔案負責將根元件渲染到 DOM 中。它通常是在index.html 中腳本標記的src 屬性中指定的檔案。

import React from \\'react\\';import ReactDOM from \\'react-dom/client\\';import App from \\'./App.jsx\\';import \\'./index.css\\';// Render the root component into the root element in the HTMLReactDOM.createRoot(document.getElementById(\\'root\\')).render(        );

在此文件中,ReactDOM.createRoot 用於將 App 元件渲染到具有 id root 的 HTML 元素中。這種直接渲染方法無需臨時保留任何根元素,從而簡化了流程,使應用程式從何處啟動以及涉及哪些元件變得清晰可見。

3.應用程式.jsx

App.jsx 檔案包含主應用程式元件的定義。該元件作為 React 元件樹的根。

import React from \\'react\\';const App = () => {  return (    

Hello, Vite and React!

);};export default App;

在此文件中,您定義應用程式的主要結構和行為。 App 元件是您建立主要 UI 和功能的地方,就像在任何其他 React 專案中一樣。

附加資料和最佳實踐

4. 將 Tailwind CSS 與 Vite 結合使用

Tailwind CSS 可以輕鬆整合到 Vite 專案中,實現實用優先的樣式。

  1. 安裝 Tailwind CSS:
npm install -D tailwindcss postcss autoprefixernpx tailwindcss init -p
  1. 配置 Tailwind:

使用專案的特定路徑更新 tailwind.config.js:

module.exports = {  content: [\\'./index.html\\', \\'./src/**/*.{js,jsx,ts,tsx}\\'],  theme: {    extend: {},  },  plugins: [],};
  1. 在 CSS 中包含 Tailwind:

更新index.css以包含Tailwind的基礎、元件和實用程式:

@tailwind base;@tailwind components;@tailwind utilities;

5. 模組熱更換(HMR)

Vite提供開箱即用的HMR,讓您無需刷新頁面即可即時看到變化。

6. 環境變數

Vite使用.env檔來管理環境變數。在專案的根目錄中建立一個 .env 檔案並定義變數:

VITE_API_URL=https://api.example.com

使用 import.meta.env:
在應用程式中存取這些變量

const apiUrl = import.meta.env.VITE_API_URL;

7. 優化建置流程

Vite 的建置命令(vite build)在底層使用 Rollup 來產生高度最佳化的靜態資產以用於生產。這可確保您的應用程式快速且有效率。

結論

在React專案中使用Vite可以提供精簡且有效率的開發體驗。了解 index.html、main.jsx 和 App.jsx 等關鍵檔案的流程和結構可以顯著增強您的開發過程。憑藉 Tailwind CSS 整合、HMR 和優化建置的附加優勢,Vite 成為 React 開發人員的現代、強大工具。

透過利用這些功能和最佳實踐,您可以輕鬆建立高效能、可擴展且可維護的應用程式。

","image":"http://www.luping.net/uploads/20240731/172241388566a9f33d9b199.jpg","datePublished":"2024-07-31T16:18:05+08:00","dateModified":"2024-07-31T16:18:05+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 了解 React 專案中的 Vite 流程和結構

了解 React 專案中的 Vite 流程和結構

發佈於2024-07-31
瀏覽:824

Understanding Vite Flow and Structure in a React Project

使用 React 時,Vite 提供了簡化的開發體驗,與傳統的 Create React App 設定有一些關鍵差異。本篇部落格文章將探討典型Vite專案的結構,重點在於index.html、main.jsx、App.jsx等關鍵檔案。

1.index.html

在 Vite 支援的 React 應用程式中,index.html 是一個關鍵的起點。與 Create React App 自動注入腳本不同,Vite 要求您直接指定腳本檔案。這種顯式包含簡化了對應用程式的入口點和依賴項的理解。


  
    
    
    Vite   React
  
  
    

在這個例子中,你可以看到script標籤直接載入main.jsx。這種直接包含是與 Create React App 的主要區別,增強了對專案入口點的清晰度和控制。

1.1 依賴關係

為了確保您的腳本檔案正確加載,Vite 利用現代 ES 模組導入。確保您的 package.json 包含必要的依賴:

"dependencies": {
  "react": "^18.2.0",
  "react-dom": "^18.2.0"
}

在 HTML 檔案中明確包含腳本可確保應用程式的正確載入和執行順序,從而減輕腳本載入的潛在問題。

2.main.jsx

main.jsx 檔案充當 React 應用程式的入口點。該檔案負責將根元件渲染到 DOM 中。它通常是在index.html 中腳本標記的src 屬性中指定的檔案。

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App.jsx';
import './index.css';

// Render the root component into the root element in the HTML
ReactDOM.createRoot(document.getElementById('root')).render(
  
    
  
);

在此文件中,ReactDOM.createRoot 用於將 App 元件渲染到具有 id root 的 HTML 元素中。這種直接渲染方法無需臨時保留任何根元素,從而簡化了流程,使應用程式從何處啟動以及涉及哪些元件變得清晰可見。

3.應用程式.jsx

App.jsx 檔案包含主應用程式元件的定義。該元件作為 React 元件樹的根。

import React from 'react';

const App = () => {
  return (
    

Hello, Vite and React!

); }; export default App;

在此文件中,您定義應用程式的主要結構和行為。 App 元件是您建立主要 UI 和功能的地方,就像在任何其他 React 專案中一樣。

附加資料和最佳實踐

4. 將 Tailwind CSS 與 Vite 結合使用

Tailwind CSS 可以輕鬆整合到 Vite 專案中,實現實用優先的樣式。

  1. 安裝 Tailwind CSS:
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
  1. 配置 Tailwind:

使用專案的特定路徑更新 tailwind.config.js:

module.exports = {
  content: ['./index.html', './src/**/*.{js,jsx,ts,tsx}'],
  theme: {
    extend: {},
  },
  plugins: [],
};
  1. 在 CSS 中包含 Tailwind:

更新index.css以包含Tailwind的基礎、元件和實用程式:

@tailwind base;
@tailwind components;
@tailwind utilities;

5. 模組熱更換(HMR)

Vite提供開箱即用的HMR,讓您無需刷新頁面即可即時看到變化。

6. 環境變數

Vite使用.env檔來管理環境變數。在專案的根目錄中建立一個 .env 檔案並定義變數:

VITE_API_URL=https://api.example.com

使用 import.meta.env:
在應用程式中存取這些變量

const apiUrl = import.meta.env.VITE_API_URL;

7. 優化建置流程

Vite 的建置命令(vite build)在底層使用 Rollup 來產生高度最佳化的靜態資產以用於生產。這可確保您的應用程式快速且有效率。

結論

在React專案中使用Vite可以提供精簡且有效率的開發體驗。了解 index.html、main.jsx 和 App.jsx 等關鍵檔案的流程和結構可以顯著增強您的開發過程。憑藉 Tailwind CSS 整合、HMR 和優化建置的附加優勢,Vite 成為 React 開發人員的現代、強大工具。

透過利用這些功能和最佳實踐,您可以輕鬆建立高效能、可擴展且可維護的應用程式。

版本聲明 本文轉載於:https://dev.to/vyan/understanding-vite-flow-and-structure-in-a-react-project-2e84?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 為什麼我在Silverlight Linq查詢中獲得“無法找到查詢模式的實現”錯誤?
    為什麼我在Silverlight Linq查詢中獲得“無法找到查詢模式的實現”錯誤?
    查詢模式實現缺失:解決“無法找到”錯誤在Silverlight應用程序中,嘗試使用LINQ建立LINQ連接以錯誤而實現的數據庫”,無法找到查詢模式的實現。”當省略LINQ名稱空間或查詢類型缺少IEnumerable 實現時,通常會發生此錯誤。 解決問題來驗證該類型的質量是至關重要的。在此特定實例...
    程式設計 發佈於2025-03-26
  • 如何在GO編譯器中自定義編譯優化?
    如何在GO編譯器中自定義編譯優化?
    在GO編譯器中自定義編譯優化 GO中的默認編譯過程遵循特定的優化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    程式設計 發佈於2025-03-26
  • \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    答案: 在大多數現代編譯器中,while(1)和(1)和(;;)之間沒有性能差異。編譯器: perl: 1 輸入 - > 2 2 NextState(Main 2 -E:1)V-> 3 9 Leaveloop VK/2-> A 3 toterloop(next-> 8 last-> 9 ...
    程式設計 發佈於2025-03-26
  • 為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    mySQL錯誤#1089:錯誤的前綴鍵錯誤descript [#1089-不正確的前綴鍵在嘗試在表中創建一個prefix鍵時會出現。前綴鍵旨在索引字符串列的特定前綴長度長度,可以更快地搜索這些前綴。 了解prefix keys `這將在整個Movie_ID列上創建標準主鍵。主密鑰對於唯一識...
    程式設計 發佈於2025-03-26
  • 如何從PHP中的Unicode字符串中有效地產生對URL友好的sl。
    如何從PHP中的Unicode字符串中有效地產生對URL友好的sl。
    為有效的slug生成首先,該函數用指定的分隔符替換所有非字母或數字字符。此步驟可確保slug遵守URL慣例。隨後,它採用ICONV函數將文本簡化為us-ascii兼容格式,從而允許更廣泛的字符集合兼容性。 接下來,該函數使用正則表達式刪除了不需要的字符,例如特殊字符和空格。此步驟可確保slug僅包...
    程式設計 發佈於2025-03-26
  • 如何簡化PHP中的JSON解析以獲取多維陣列?
    如何簡化PHP中的JSON解析以獲取多維陣列?
    php 試圖在PHP中解析JSON數據的JSON可能具有挑戰性,尤其是在處理多維數組時。 To simplify the process, it's recommended to parse the JSON as an array rather than an object.To do...
    程式設計 發佈於2025-03-26
  • 您如何在Laravel Blade模板中定義變量?
    您如何在Laravel Blade模板中定義變量?
    在Laravel Blade模板中使用Elegance 在blade模板中如何分配變量對於存儲以後使用的數據至關重要。在使用“ {{}}”分配變量的同時,它可能並不總是最優雅的解決方案。 幸運的是,Blade通過@php Directive提供了更優雅的方法: $ old_section =...
    程式設計 發佈於2025-03-26
  • 如何使用PHP將斑點(圖像)正確插入MySQL?
    如何使用PHP將斑點(圖像)正確插入MySQL?
    essue VALUES('$this->image_id','file_get_contents($tmp_image)')";This code builds a string in PHP, but the function call fil...
    程式設計 發佈於2025-03-26
  • 如何有效地選擇熊貓數據框中的列?
    如何有效地選擇熊貓數據框中的列?
    在處理數據操作任務時,在Pandas DataFrames 中選擇列時,選擇特定列的必要條件是必要的。在Pandas中,選擇列的各種選項。 選項1:使用列名 如果已知列索引,請使用ILOC函數選擇它們。請注意,python索引基於零。 df1 = df.iloc [:,0:2]#使用索引0和1 ...
    程式設計 發佈於2025-03-26
  • 如何正確使用與PDO參數的查詢一樣?
    如何正確使用與PDO參數的查詢一樣?
    在pdo 中使用類似QUERIES在PDO中的Queries時,您可能會遇到類似疑問中描述的問題:此查詢也可能不會返回結果,即使$ var1和$ var2包含有效的搜索詞。錯誤在於不正確包含%符號。 通過將變量包含在$ params數組中的%符號中,您確保將%字符正確替換到查詢中。沒有此修改,PD...
    程式設計 發佈於2025-03-26
  • 如何在Java中執行命令提示命令,包括目錄更改,包括目錄更改?
    如何在Java中執行命令提示命令,包括目錄更改,包括目錄更改?
    在java 通過Java通過Java運行命令命令可能很具有挑戰性。儘管您可能會找到打開命令提示符的代碼段,但他們通常缺乏更改目錄並執行其他命令的能力。 solution:使用Java使用Java,使用processBuilder。這種方法允許您:啟動一個過程,然後將其標準錯誤重定向到其標準輸出...
    程式設計 發佈於2025-03-26
  • 在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    mysql-python安裝錯誤:“ mysql_config找不到”“ 由於缺少MySQL開發庫而出現此錯誤。解決此問題,建議在Ubuntu上使用該分發的存儲庫。使用以下命令安裝Python-MysqldB: sudo apt-get安裝python-mysqldb sudo pip in...
    程式設計 發佈於2025-03-26
  • 如何使用Depimal.parse()中的指數表示法中的數字?
    如何使用Depimal.parse()中的指數表示法中的數字?
    在嘗試使用Decimal.parse(“ 1.2345e-02”中的指數符號表示法表示的字符串時,您可能會遇到錯誤。這是因為默認解析方法無法識別指數符號。 成功解析這樣的字符串,您需要明確指定它代表浮點數。您可以使用numbersTyles.Float樣式進行此操作,如下所示:[&& && && ...
    程式設計 發佈於2025-03-26
  • 如何在JavaScript對像中動態設置鍵?
    如何在JavaScript對像中動態設置鍵?
    在嘗試為JavaScript對象創建動態鍵時,如何使用此Syntax jsObj['key' i] = 'example' 1;不工作。正確的方法採用方括號: jsobj ['key''i] ='example'1; 在JavaScript中,數組是一...
    程式設計 發佈於2025-03-26
  • 如何在Java字符串中有效替換多個子字符串?
    如何在Java字符串中有效替換多個子字符串?
    在java 中有效地替換多個substring,需要在需要替換一個字符串中的多個substring的情況下,很容易求助於重複應用字符串的刺激力量。 However, this can be inefficient for large strings or when working with nu...
    程式設計 發佈於2025-03-26

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3