React项目搭建

news/2024/12/21 20:43:52/

一、项目搭建(不采用vite方式)

  1. 使用create-react-app生成项目 npx create-react-app pc

  2. 进入根目录 cd pc

  3. 启动项目 npm start

  4. 调整项目目录结构

/src/assets         项目资源文件,比如,图片 等/components     通用组件/pages          页面/store          mobx 状态仓库/utils          工具,比如,token、axios 的封装等App.js          根组件index.css       全局样式index.js        项目入口

5. 整理生成的文件  
src/index.js

import React from 'react'
import ReactDOM from 'react-dom'
import App from './App'ReactDOM.render(<React.StrictMode><App /></React.StrictMode>,document.getElementById('root')
)

src/App.js

export default function App() {return <div>根组件</div>
}

6.安装scss预处理器

npm i sass -D

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

body {margin: 0;
}#root {height: 100%;
}

7.配置路由

npm i react-router-dom -S

实现步骤

  1. 安装路由:yarn add react-router-dom
  2. 在 pages 目录中创建两个文件夹:Login、Layout
  3. 分别在两个目录中创建 index.js 文件,并创建一个简单的组件后导出
  4. 在 App 组件中,导入路由组件以及两个页面组件
  5. 配置 Login 和 Layout 的路由规则

app.js

// 导入路由
import { BrowserRouter, Route, Routes } from 'react-router-dom'// 导入页面组件
import Login from './pages/Login'
import Layout from './pages/Layout'// 配置路由规则
function App() {return (<BrowserRouter><div className="App"><Routes><Route path="/" element={<Layout/>}/><Route path="/login" element={<Login/>}/></Routes></div></BrowserRouter>)
}export default App

8.安装组件库antd

npm i antd -S

src/index.js

import 'antd/dist/antd.min.css'
// 再导入全局样式文件,防止样式覆盖!
import './index.css'

9.配置别名路径

CRA 将所有工程化配置,都隐藏在了 react-scripts 包中,所以项目中看不到任何配置信息
如果要修改 CRA 的默认配置,有以下几种方案:
通过第三方库来修改,比如,@craco/craco (推荐)
通过执行 yarn eject 命令,释放 react-scripts 中的所有配置到项目中

实现步骤

  1. 安装修改 CRA 配置的包:yarn add -D @craco/craco
  2. 在项目根目录中创建 craco 的配置文件:craco.config.js,并在配置文件中配置路径别名
  3. 修改 package.json 中的脚本命令
  4. 在代码中,就可以通过 @ 来表示 src 目录的绝对路径
  5. 重启项目,让配置生效

craco.config.js

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

package.json

// 将 start/build/test 三个命令修改为 craco 方式
"scripts": {"start": "craco start","build": "craco build","test": "craco test","eject": "react-scripts eject"
}

@别名配置

实现步骤

  1. 在项目根目录创建 jsconfig.json 配置文件
  2. 在配置文件中添加以下配置
{"compilerOptions": {"baseUrl": "./","paths": {"@/*": ["src/*"]}}
}

vscode会自动读取jsconfig.json 中的配置,让vscode知道@就是src目录

二、项目搭建(采用vite方式)

 


http://www.ppmy.cn/news/91078.html

相关文章

电子合同网页预览盖章效果实现

电子合同在现在应用越来越广&#xff0c;需求也就随之产生。 本篇文章主要记录两种网页盖章效果实现方式&#xff0c;自己记录一下&#xff0c; 也给需要的人提供一点思路和帮助。 效果 JqueryCSS实现 原理 通过定位盖章位置&#xff0c;之后操作图片悬浮到盖章位置 1.设置…

SCTracker 跟踪论文阅读笔记

SCTracker 跟踪论文阅读笔记 SCTracker: Multi-object tracking with shape and confidence constraints 论文链接 (未开源状态) 论文主要更新点围绕shape constraint and confidence两点来展开&#xff1a; 首先论证在跟踪匹配的过程中D-box(检测框)与T-box(预测框)需要有一定…

如何在华为OD机试中获得满分?Java实现【对称字符串】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述4. Java算法源码5. 测试6.解题思路1. 题目描述 对称就是最大的美学,现…

【C++】类和对象——类的引入、类的访问限定符、类的作用域、类的实例化、类的储存、this指针的引出和特性

文章目录 1.类的引入2.类的访问限定符3.类的作用域4.类的实例化5.类的储存6.this指针6.1this指针的引出6.2this指针的特性 1.类的引入 C是在C的基础上加以扩展。 在C语言中&#xff0c;我们想要让一个类型含有多种成员变量&#xff0c;我们使用结构体&#xff1b;而在C中我们可…

项目管理自动化 工作效率顶呱呱

项目管理&#xff0c;是职场人进阶发展的必备高阶能力&#xff0c;需要在复杂的环境中有效整合资源、高效助力团队实现整体的项目目标。 一个好的项目管理者&#xff0c;需要合理规划项目进展&#xff0c;实时同步需求、及时沟通进展&#xff0c;合理判断项目风险&预警&am…

操作系统第五章——输入输出管理(中)

提示&#xff1a;若我会见到你&#xff0c;事隔经年&#xff0c;我如何向你招呼&#xff0c;以眼泪&#xff0c;以沉默 文章目录 5.2.1 IO核心子系统知识总览功能要在那个层次实现 5.2.2 假脱机技术&#xff08;SPOOLing&#xff09;知识总览什么是脱机技术假脱机技术——输入井…

还是畅通工程(Kruscal)_02

#include<bits/stdc.h> using namespace std; const int MAXN1000; int father[MAXN];//父亲结点 int height[MAXN];//高度结点 struct Edge{int from;int to;int length; }; Edge edge[MAXN*MAXN]; //初始化 void init(int n){for(int i0;i<n;i){father[i]i;height[…

PMP例题 学习记录

1、 项目经理同时担任项目A和项目B的管理工作&#xff0c;其中项目A是符合公司总体战略计划的项目&#xff0c;项目B是项目经理直接领导负责的项目&#xff0c;两个项目在资源使用需求上有冲突&#xff0c;项目经理应该怎么办&#xff1f; A、请求PMO对两个项目的优先级进行排…