在這個例子中,你可以看到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
瀏覽:297

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]刪除
最新教學 更多>
  • 我應該在呼叫 `condition_variable.notify_one()` 之前取得鎖定嗎?
    我應該在呼叫 `condition_variable.notify_one()` 之前取得鎖定嗎?
    在呼叫condition_variable.notify_one()之前何時應該取得鎖? 在多執行緒程式設計中,condition_variables用於向等待執行緒發出訊號已滿足特定條件。雖然在呼叫condition_variable.wait()之前需要持有鎖,但在呼叫notify_one()之...
    程式設計 發佈於2024-12-23
  • 如何使用 jQuery 將 Onclick 事件附加到動態新增的元素?
    如何使用 jQuery 將 Onclick 事件附加到動態新增的元素?
    如何使用 jQuery 將 Onclick 事件綁定到動態新增的 HTML 元素使用 jQuery 時,經常需要動態新增 HTML 元素頁面。在這種情況下,您可能需要將事件處理程序附加到這些元素。然而,將事件處理程序附加到頁面載入後新增的元素可能具有挑戰性。 問題和先前的解決方案傳統上,可以使用 ....
    程式設計 發佈於2024-12-23
  • 在 Pygame 中載入資源時如何修復“FileNotFoundError”?
    在 Pygame 中載入資源時如何修復“FileNotFoundError”?
    使用Pygame 載入資源:解決「FileNotFoundError」當嘗試在Pygame 中載入圖片或聲音等外部資源時,您可能會遇到“FileNotFoundError:沒有這樣的檔案或目錄”錯誤。此問題通常是由於資源檔案路徑不正確造成的,特別是當路徑相對於目前工作目錄時。 解決方案:設定工作目錄...
    程式設計 發佈於2024-12-23
  • Go泛型的聯合約束可以在沒有明確介面宣告的情況下呼叫共享方法嗎?
    Go泛型的聯合約束可以在沒有明確介面宣告的情況下呼叫共享方法嗎?
    Go 泛型中調用聯合約束的方法在Go 泛型(v1.18)中,你可能會遇到限制類型聯合約束的類型將參數類型轉換為實現統一介面的類型。然而,無法在受約束類型之間呼叫共享方法引起了人們對此類約束的實用性的擔憂。 考慮以下程式碼:type A struct {} type B struct {} type ...
    程式設計 發佈於2024-12-23
  • 如何在 TypeScript 中執行執行時間介面類型檢查?
    如何在 TypeScript 中執行執行時間介面類型檢查?
    TypeScript 中的介面類型檢查在TypeScript 中,您可能會遇到這樣的場景:在執行時間確定物件是否符合預定義介面至關重要。雖然利用instanceof關鍵字進行類別類型檢查很簡單,但將其應用於介面卻提出了挑戰。 傳統方法(例如依賴instanceof運算子)被證明是無效的,因為介面在編...
    程式設計 發佈於2024-12-23
  • 如何使用逾時取消長時間運行的 Python 函數?
    如何使用逾時取消長時間運行的 Python 函數?
    用超時取消長時間運行的函數呼叫執行包含可能停頓函數的複雜腳本時,需要提供一種方法如果這些函數超過指定的執行時間,則終止它們。這可確保腳本不會變得無回應或無限期地卡住。 在 Python 中,利用訊號包(在 UNIX 系統上可用)為該問題提供了解決方案。透過註冊訊號處理程序,您可以設定函數呼叫的逾時。...
    程式設計 發佈於2024-12-23
  • React 效能最佳化技術:記憶化、延遲載入等
    React 效能最佳化技術:記憶化、延遲載入等
    构建现代 Web 应用程序时,性能是关键。用户期望应用程序快速、响应灵敏,即使是轻微的延迟也会导致沮丧。 React 虽然功能强大,但有时会遇到性能瓶颈,尤其是当应用程序规模和复杂性不断增长时。幸运的是,有多种技术可以优化性能,包括记忆、延迟加载等等。 在本指南中,我们将详细介绍一些优化 React...
    程式設計 發佈於2024-12-23
  • Java 中初始大小設定如何影響 ArrayList 效能?
    Java 中初始大小設定如何影響 ArrayList 效能?
    了解ArrayList 的初始大小設定在Java 中,ArrayList 類別允許您在實例化期間指定初始大小,確保記憶效率。但是,區分初始大小和清單容量非常重要。 雖然初始大小決定清單中元素的初始數量,但它不會在特定索引處預先分配空間。相反,它定義了底層數組的容量,使其能夠容納更多元素,而無需在低索...
    程式設計 發佈於2024-12-23
  • 插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入記錄時如何解決「一般錯誤:2006 MySQL 伺服器已消失」介紹:將資料插入MySQL 資料庫有時會導致錯誤「一般錯誤:2006 MySQL 伺服器已消失」。當與伺服器的連線遺失時會出現此錯誤,通常是由於 MySQL 配置中的兩個變數之一所致。 解決方案:解決此錯誤的關鍵是調整wait_tim...
    程式設計 發佈於2024-12-23
  • 如何根據物件的ID屬性有效率地尋找數組條目?
    如何根據物件的ID屬性有效率地尋找數組條目?
    根據物件屬性識別數組條目考慮一個物件數組,每個物件都擁有一個「ID」屬性。為了找到與變數「$v」中儲存的特定「ID」值相對應的條目,我們探索了幾種方法:1。迭代搜尋這涉及順序迭代數組,將每個物件的「ID」屬性與所需值「$v」進行比較。 $item = null; foreach($array as ...
    程式設計 發佈於2024-12-23
  • 參數化單元測試如何簡化 Python 測試產生?
    參數化單元測試如何簡化 Python 測試產生?
    Python 中的參數化單元測試:動態測試產生指南在軟體開發中,測試對於確保可靠性和可靠性起著至關重要的作用。我們的程式碼的準確性。單元測試尤其涉及為特定功能或模組建立單獨的測試。然而,在處理大型資料集或複雜的測試場景時,為每個參數手動編寫測試變得很費力。 參數化測試:動態測試產生的解決方案參數化測...
    程式設計 發佈於2024-12-23
  • 如何在 PHP 中從 URL 中提取子網域?
    如何在 PHP 中從 URL 中提取子網域?
    在 PHP 中從 URL 檢索子網域在 PHP 中從 URL 檢索子網域識別 URL 中的子網域可能是各種 Web 應用程式中的常見任務。本文探討 PHP 從給定 URL 中提取子網域的功能。 提取子網域的函數function getSubdomain($url) { // Split the ...
    程式設計 發佈於2024-12-23
  • HTML 格式標籤
    HTML 格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2024-12-23
  • 如何停用 Console.log 語句以在 JavaScript 中進行高效程式碼測試?
    如何停用 Console.log 語句以在 JavaScript 中進行高效程式碼測試?
    禁用Console.log 語句以實現高效代碼測試在JavaScript 開發中,console.log 語句可能會在測試期間使控制台窗口變得混亂,導致很難確定具體問題。要解決這個問題,請考慮使用以下方法輕鬆停用所有console.log 語句:重新定義Console.log 函數:透過將conso...
    程式設計 發佈於2024-12-23
  • 如何使用 Duck Typing 可靠地偵測 Safari、Chrome、Firefox、IE 和 Opera 瀏覽器?
    如何使用 Duck Typing 可靠地偵測 Safari、Chrome、Firefox、IE 和 Opera 瀏覽器?
    使用Duck-Typing 偵測Safari、Chrome、IE、Firefox 和Opera 瀏覽器決定使用者的瀏覽器通常是重新導向使用者所必需的到特定於瀏覽器的擴充功能的適當下載連結。然而,依靠用戶代理字串進行瀏覽器檢測是不可靠的,因為它容易受到欺騙。 一種更可靠的方法,稱為鴨子打字,可用於根據...
    程式設計 發佈於2024-12-23

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

Copyright© 2022 湘ICP备2022001581号-3