首页 > 其他分享 >React+Vite从零搭建项目及配置详解

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

时间:2024-12-20 09:02:02浏览次数:6  
标签:App 配置 React 详解 Vite 组件 import pages 路由

相信很多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(简称 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'

标签:App,配置,React,详解,Vite,组件,import,pages,路由
From: https://blog.csdn.net/xiaolouuuu/article/details/144574660

相关文章

  • C语言 qsort 详解
    qsort1.定义:           qsort,基于快速排序(QuickSort)算法的一个库函数,可以将一串整型类型、浮点类型、       字符串类型、结构体类型等的数据进行排序。比冒泡排序,选择法排序好用,且速度更快。2.语法:        具体语法如下:qsort(arr,siz......
  • 一文详解“分治—归并“在算法中的应用
    找往期文章包括但不限于本期文章中不懂的知识点:个人主页:我要学编程(ಥ_ಥ)-CSDN博客所属专栏: 优选算法专题这里的归并与我们在数据结构中学习的归并排序是一样的,我们可以先来复习一下归并排序。用一道题来帮助我们回想起归并排序的细节。目录912.排序数组LCR170.交易......
  • HelloWorld详解
    HelloWorld随便新建一个文件夹,存放代码新建一个java文件文件名后缀名为.javaHello.java[注意点]需要手动打开文件扩展名编写代码publicclassHello{ publicstaticvoidmain(String[]args){ System.out.print("Hello,World!"); }}编译javacjava文件......
  • Java设计模式 —— 【结构型模式】桥接模式详解
    前言现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。首先我们看看用继承来实现:我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆炸,扩展起来不......
  • 【01】优雅草央千澈详解关于APP签名以及分发-上架完整流程-如何将安卓APP-apk包和IOS
    【01】优雅草央千澈详解关于APP签名以及分发-上架完整流程-如何将安卓APP-apk包和IOS苹果app-ipa包上架至应用商店-安卓以华为|小米|vivo|oppo|应用宝为例-苹果上架以appstore为例合计三篇背景介绍2024年12月13日优雅草APP分发平台youyacao.cn建立,提供服务(优雅草2019年就曾建......
  • 大文件传输与断点续传实现(极简Demo: React+Node.js)
    大文件传输与断点续传实现(极简Demo:React+Node.js)简述使用React前端和Node.js后端实现大文件传输和断点续传的功能。通过分片上传技术,可以有效地解决网络不稳定带来的传输中断问题。文章内容前端实现(React)首先,您需要在前端项目中安装axios、spark-md5库以处理HTTP请求。可以......
  • Nmap脚本参数详解
    免责声明:使用本教程或工具,用户必须遵守所有适用的法律和法规,并且用户应自行承担所有风险和责任。文章目录一、按脚本分类1.检查身份验证机制2.探测广播行为3.登录爆破4.默认脚本运行5.网络资产发现6.Dos漏洞检测7.漏洞利用8.检测威胁主机9.模糊测试10.侵入......
  • React的使用笔记1 React 项目的创建与JSX基础知识
    时间久远,工作中没有遇到react的情况,早就忘记React怎么写了~回顾一下吧。React项目的搭建npxcreat-react-appapp-nameReact项目的运行具体可以参考README中的说明,没有特殊的情况下,直接npmstart删除项目src目录中不必要的代码先,仅保留入口文件即可,即App.js与index.j......
  • 网络编程一>HTTP协议详解,<一文搞懂HTTP协议,抓包工具使用,HTTP协议报头>
    目录:  一.获取HTTP协议: 二.HTTP基本格式及格式内容: 三.HTTP请求"报头"详情(header):  一.获取HTTP协议:一.HTTP是什么HTTP(全称为"超文本传输协议")是⼀种应用非常广泛的应用层协议. 当我们在浏览器中输入⼀个"网址",此时浏览器就会给对应的服务......
  • EasyPlayer.js视频流媒体播放器在React项目中应如何使用?
    H5流媒体播放器,作为基于HTML5技术的创新产品,近年来在音频和视频播放领域取得了显著的发展。它不仅为用户提供了流畅、稳定的播放体验,还通过丰富的交互功能增强了用户的参与感。那么在实际应用时,在React项目中应如何使用EasyPlayer播放器呢?1、在官网下载播放器压缩包。2、解压......