当前位置: 首页 > news >正文

React+Vite从零搭建项目及配置详解

相信很多React初学者第一次搭建自己的项目,搭建时会无从下手,本篇适合快速实现功能,熟悉React项目搭建流程。

目录

一、创建项目react-item

二、调整项目目录结构

三、使用scss预处理器

四、组件库Ant Design

五、配置基础路由

六、配置别名路径


一、创建项目react-item

npm create vite react-item

二、调整项目目录结构

-src-apis           项目接口函数-assets         项目资源文件,比如,图片等-components     通用组件-pages          页面组件-store          集中状态管理-utils          工具,比如,token、axios 的封装等-App.js         根组件-index.css      全局样式-index.js       项目入口

三、使用scss预处理器

SASS是一种预编译的 CSS,支持一些比较高级的语法,可以提高编写样式的效率,CRA接入scss非常简单只需要我们装一个sass工具

1. 安装解析 sass 的包

npm i sass -D

2. 创建全局样式文件:index.scss

四、组件库Ant Design

Ant Design(简称 Antd)是一个企业级的 UI 设计语言和 React 组件库,由 Ant Financial(蚂蚁金服)团队开发和维护。它旨在为开发者提供一套设计精美、功能完善的前端组件

官方网站:

Ant Design of React - Ant Design

1. 安装 antd 组件库

npm i antd

2. 在App.jsx中导入 Button 组件测试

import { Button } from 'antd'
import './App.css'function App() {return (<><Button type='primary'>按钮</Button></>)
}export default App

 成功:

五、配置基础路由

1. 安装路由包 

npm i react-router-dom

2. 准备 Home和 About俩个基础组件

一级路由:

// src/pages/Home.jsx
import { Outlet, Link } from 'react-router-dom';const Home = () => {return (<div><nav><ul><li><Link to="/home/section1">侧边栏1</Link></li><li><Link to="/home/section2">侧边栏2</Link></li></ul></nav>{/* 渲染嵌套路由的内容 */}<Outlet /></div>);
}export default Home;
// src/pages/About.jsx
const About = () => {return (<div><h2>关于</h2></div>);
}export default About;

二级路由 Section1和Section2

// src/pages/Section1.jsx
const Section1 = () => {return (<div><h3>Section 1 Content</h3><p>This is the content of Section 1.</p></div>);
}export default Section1;
// src/pages/Section2.jsx
const Section2 = () => {return (<div><h3>Section 2 Content</h3><p>This is the content of Section 2.</p></div>);
}export default Section2;

3. 配置路由

App.jsx

// src/App.jsx
import { BrowserRouter as Router, Route, Routes, Link } from 'react-router-dom';
import Home from './pages/Home';
import About from './pages/About';
import Section1 from './pages/Section1';
import Section2 from './pages/Section2';const App = () => {return (<Router><div>{/* 主导航栏 */}<nav><ul className='tab'><li><Link to="/home">首页</Link></li><li><Link to="/about">关于</Link></li></ul></nav>{/* 路由配置 */}<Routes><Route path="home" element={<Home />}>{/* 二级路由配置 */}<Route path="section1" element={<Section1 />} /><Route path="section2" element={<Section2 />} /></Route><Route path="about" element={<About />} /></Routes></div></Router>);
}export default App;

  • BrowserRouter:用于包裹整个应用程序,开启前端路由的功能。在这里使用了别名 Router,目的是让路由能够通过 URL 来导航页面而不刷新整个页面。
  • Route:定义路由规则,指定 URL 路径和对应的组件。
  • Routes:包裹所有的 Route,用于配置和管理路由规则。
  • Link:用于创建应用程序内的导航链接,通过点击链接来进行页面导航。
  • Router 是 React Router 的核心组件,负责包裹整个应用程序,管理页面的路由逻辑。
  • <Outlet />:用来渲染嵌套路由的内容。在 Home 组件中,当访问 /home/section1 或 /home/section2 时,这部分内容会被渲染到 <Outlet /> 所在的位置。

六、配置别名路径

1. 安装craco工具包

Create React App 是一个非常流行的工具,用于快速构建 React 应用。它提供了一些开箱即用的配置,如 Webpack、Babel、ESLint、Prettier 等。然而,这些配置默认是隐藏的,用户无法直接修改它们。如果你需要自定义 Webpack 或其他工具的配置,就需要执行 eject 操作。

问题:eject 的缺点
  • 执行 eject 后,所有的配置文件都会暴露出来并且变得可以修改,但这也意味着你需要管理和维护这些文件,增加了复杂度。
  • 一旦 eject,就无法恢复,也无法享受 Create React App 后续版本的自动更新和修复。
解决方案:CRACO

CRACO 提供了一种无需执行 eject 即可自定义配置的方法,它通过修改 CRA 的默认配置来满足你的需求,同时保持 CRA 的内部配置自动管理。

npm i @craco/craco -D

2. 根目录增加 `craco.config.js` 配置文件

const path = require('path')module.exports = {// webpack 配置webpack: {// 配置别名alias: {// 约定:使用 @ 表示 src 文件所在路径'@': path.resolve(__dirname, 'src')}}
}

3. 修改 `scripts 命令`

这个配置保留了 craco 作为主要的开发工具来启动、构建和测试项目,并且通过 eject 保留了传统的暴露配置的方式,允许开发者在需要时完全控制项目的配置。

在package.json中:

"scripts": {"start": "craco start","build": "craco build","test": "craco test","eject": "react-scripts eject"
}

4. 测试是否生效

import Login from '@/pages/Login'
import Layout from '@/pages/Layout'


http://www.mrgr.cn/news/80770.html

相关文章:

  • 传统CV算法——基于opencv的答题卡识别判卷系统
  • uniapp连接蓝牙操作(蓝牙设备地锁)
  • Linux - MySQL迁移至一主一从
  • java后端环境配置
  • 基于MNE的EEGNet 神经网络的脑电信号分类实战(附完整源码)
  • Meta升级Ray-Ban智能眼镜:新增实时AI对话与翻译功能
  • 我的性能优化经验
  • Centos创建共享文件夹拉取文件
  • 面试题整理9----谈谈对k8s的理解1
  • 记一次pfring在目标机器上出现Illegal instruction.的修复过程
  • Android Binder 进程间通信
  • 数据科学与SQL:如何利用本福特法则识别财务数据造假?
  • 唯品会Android面试题及参考答案
  • 问题解决:发现Excel中的部分内容有问题。是否让我们尽量尝试恢复? 如果您信任此工作簿的源,请单击“是”。
  • tomcat的安装以及配置(基于linuxOS)
  • [代码随想录21回溯]组合问题,电话号码的字母组合问题
  • 制作一个简单的图片预览
  • python学opencv|读取图像(十六)修改HSV图像HSV值
  • 管理系统、微信小程序类源码文档-哔哩哔哩教程同步
  • 西游记战力排名、笔记等
  • pro文件转换为CMakeLists.txt文件,QT官方工具使用教程
  • 【云原生】Docker Compose 从入门到实战使用详解
  • 唯品会C++面试题及参考答案
  • FreeMarker语法
  • Restaurants WebAPI(二)——DTO/CQRS
  • 17.springcloud_openfeign之扩展组件一