在这个例子中,你可以看到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
浏览:724

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]删除
最新教程 更多>
  • 如何在鼠标单击时编程选择DIV中的所有文本?
    如何在鼠标单击时编程选择DIV中的所有文本?
    在鼠标上选择div文本单击带有文本内容,用户如何使用单个鼠标单击单击div中的整个文本?这允许用户轻松拖放所选的文本或直接复制它。 在单个鼠标上单击的div元素中选择文本,您可以使用以下Javascript函数: function selecttext(canduterid){ if(do...
    编程 发布于2025-06-29
  • 为什么我的CSS背景图像出现?
    为什么我的CSS背景图像出现?
    故障排除:CSS背景图像未出现 ,您的背景图像尽管遵循教程说明,但您的背景图像仍未加载。图像和样式表位于相同的目录中,但背景仍然是空白的白色帆布。而不是不弃用的,您已经使用了CSS样式: bockent {背景:封闭图像文件名:背景图:url(nickcage.jpg); 如果您的html,css...
    编程 发布于2025-06-29
  • Go语言垃圾回收如何处理切片内存?
    Go语言垃圾回收如何处理切片内存?
    Garbage Collection in Go Slices: A Detailed AnalysisIn Go, a slice is a dynamic array that references an underlying array.使用切片时,了解垃圾收集行为至关重要,以避免潜在的内存泄...
    编程 发布于2025-06-29
  • 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...
    编程 发布于2025-06-29
  • 为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    查询模式实现缺失:解决“无法找到”错误在银光应用程序中,尝试使用LINQ建立错误的数据库连接的尝试,无法找到以查询模式的实现。”当省略LINQ名称空间或查询类型缺少IEnumerable 实现时,通常会发生此错误。 解决问题来验证该类型的质量是至关重要的。在此特定实例中,tblpersoon可能需...
    编程 发布于2025-06-29
  • 解决Spring Security 4.1及以上版本CORS问题指南
    解决Spring Security 4.1及以上版本CORS问题指南
    弹簧安全性cors filter:故障排除常见问题 在将Spring Security集成到现有项目中时,您可能会遇到与CORS相关的错误,如果像“访问Control-allo-allow-Origin”之类的标头,则无法设置在响应中。为了解决此问题,您可以实现自定义过滤器,例如代码段中的MyFi...
    编程 发布于2025-06-29
  • 如何将MySQL数据库添加到Visual Studio 2012中的数据源对话框中?
    如何将MySQL数据库添加到Visual Studio 2012中的数据源对话框中?
    在Visual Studio 2012 尽管已安装了MySQL Connector v.6.5.4,但无法将MySQL数据库添加到实体框架的“ DataSource对话框”中。为了解决这一问题,至关重要的是要了解MySQL连接器v.6.5.5及以后的6.6.x版本将提供MySQL的官方Visual...
    编程 发布于2025-06-29
  • Python高效去除文本中HTML标签方法
    Python高效去除文本中HTML标签方法
    在Python中剥离HTML标签,以获取原始的文本表示Achieving Text-Only Extraction with Python's MLStripperTo streamline the stripping process, the Python standard librar...
    编程 发布于2025-06-29
  • 如何将PANDAS DataFrame列转换为DateTime格式并按日期过滤?
    如何将PANDAS DataFrame列转换为DateTime格式并按日期过滤?
    Transform Pandas DataFrame Column to DateTime FormatScenario:Data within a Pandas DataFrame often exists in various formats, including strings.使用时间数据时...
    编程 发布于2025-06-29
  • 在程序退出之前,我需要在C ++中明确删除堆的堆分配吗?
    在程序退出之前,我需要在C ++中明确删除堆的堆分配吗?
    在C中的显式删除 在C中的动态内存分配时,开发人员通常会想知道是否需要手动调用“ delete”操作员在heap-exprogal exit exit上。本文深入研究了这个主题。 在C主函数中,使用了动态分配变量(HEAP内存)的指针。当应用程序退出时,此内存是否会自动发布?通常,是。但是,即使在这...
    编程 发布于2025-06-29
  • 如何正确使用与PDO参数的查询一样?
    如何正确使用与PDO参数的查询一样?
    在pdo 中使用类似QUERIES在PDO中的Queries时,您可能会遇到类似疑问中描述的问题:此查询也可能不会返回结果,即使$ var1和$ var2包含有效的搜索词。错误在于不正确包含%符号。通过将变量包含在$ params数组中的%符号中,您确保将%字符正确替换到查询中。没有此修改,PDO...
    编程 发布于2025-06-29
  • 如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    appEngine静态文件mime type override ,静态文件处理程序有时可以覆盖正确的mime类型,在错误消息中导致错误消息:“无法猜测mimeType for for file for file for [File]。 application/application/octet...
    编程 发布于2025-06-29
  • 为什么我会收到MySQL错误#1089:错误的前缀密钥?
    为什么我会收到MySQL错误#1089:错误的前缀密钥?
    mySQL错误#1089:错误的前缀键错误descript [#1089-不正确的前缀键在尝试在表中创建一个prefix键时会出现。前缀键旨在索引字符串列的特定前缀长度长度,以便更快地搜索这些前缀。理解prefix keys `这将在整个Movie_ID列上创建标准主键。主密钥对于唯一识别...
    编程 发布于2025-06-29
  • 如何从PHP中的数组中提取随机元素?
    如何从PHP中的数组中提取随机元素?
    从阵列中的随机选择,可以轻松从数组中获取随机项目。考虑以下数组:; 从此数组中检索一个随机项目,利用array_rand( array_rand()函数从数组返回一个随机键。通过将$项目数组索引使用此键,我们可以从数组中访问一个随机元素。这种方法为选择随机项目提供了一种直接且可靠的方法。
    编程 发布于2025-06-29
  • `console.log`显示修改后对象值异常的原因
    `console.log`显示修改后对象值异常的原因
    foo = [{id:1},{id:2},{id:3},{id:4},{id:id:5},],]; console.log('foo1',foo,foo.length); foo.splice(2,1); console.log('foo2', foo, foo....
    编程 发布于2025-06-29

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3