搭建react项目

一、环境准备

1、安装node

官网下载安装:https://nodejs.org/en
注: npm5.2以后,安装node会自动安装npm和npx

2、安装webpack

npm install -g webpack

3、安装create-react-app

npm install -g create-react-app

二、创建react项目

1、初始化项目

npx create-react-app [项目名称]   // 例如:npx create-react-app react-demo
  • 安装成功

在这里插入图片描述

  • 初始项目结构

在这里插入图片描述

2、启动项目

npm start

启动成功后,访问 http://localhost:3000 初始界面如下:

在这里插入图片描述

三、基础配置

1、src目录调整

在src目录下创建如下文件夹,方便资源区分及管理

  • assets:静态资源
  • router:路由
  • components:公共组件
  • utils:工具
  • views:页面

2、路由配置

  • 安装react-router-dom
npm i react-router-dom
  • 新建页面

在views文件夹下新建页面:
登录页:views/login/index.js

import React from 'react'class Login extends React.Component {// 数据state = {username: '',password: '',}// 表单-受控组件handleChange = e => {this.setState({[e.target.name]: e.target.value,})}// 渲染domrender() {return (<div className="login-wrap"><div className="login-content"><h1>用户登录</h1><inputtype="text"placeholder="请输入用户名"name="username"value={this.state.username}onChange={this.handleChange}></input><inputtype="text"placeholder="请输入密码"name="password"value={this.state.password}onChange={this.handleChange}></input><button>登 录</button></div></div>)}
}// 导出包裹后的类组件
export default Login

首页:views/home/index.js

import React from 'react'class Home extends React.Component {render() {return (<div>我是首页</div>)}
}export default Home 
  • 集成路由

router/index.js中集中引入页面,写路由数组

import Login from '../views/login/index'
import Home from '../views/home/index'export const routers = [{path: '/',name: '登录',component: Login,},{path: '/home',name: 'home',component: Home,},
]
  • 配置路由

src/App.js根组件写路由配置信息

/*** 根组件* 路由配置信息*/import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'  // 导入路由核心
import { routers } from '../src/router/index'  // 导入路由// 使用Router组件包裹整个应用
// 使用Link组件作为导航菜单,路由入口
// 使用Route组件配置路由规则和要展示的组件,路由出口,exact属性表示精确匹配
const App = () => (<Router><div>{/* 导航菜单,路由入口 */}<div>{routers.map((item, index) => {return (<Link key={index} to={item.path} style={{ marginRight: '16px' }}>{item.name}</Link>)})}</div>{/* 路由出口 */}<Routes>{routers.map((item, index) => {return (<Routeexactkey={index}path={item.path}element={<item.component />}></Route>)})}</Routes></div></Router>
)export default App
  • 在入口文件使用

src/index.js入口文件引入根组件App

/*** 项目入口文件*/// 1、导入React
import React from 'react'
import ReactDOM from 'react-dom/client'
import reportWebVitals from './reportWebVitals'import App from './App'   // 引入根组件// 2、创建React元素
const root = ReactDOM.createRoot(document.getElementById('root'))// 3、渲染React元素
root.render(<React.StrictMode><App /></React.StrictMode>
)// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/111229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端用 js-file-download组件下载后端返回的pdf,word,excel文件

后端返回的pdf,word,excel的文件流导出需要让浏览器下载文件 1、安装js-file-download组件 npm install js-file-download --save 2、在对应的页面引用 import fileDownload from "js-file-download"; 3、在接口返回结果后直接调用即可 let data{id:processId,c…

MSQL系列(六) Mysql实战-SQL语句优化

Mysql实战-SQL语句优化 前面我们讲解了索引的存储结构&#xff0c;BTree的索引结构&#xff0c;以及索引最左侧匹配原则&#xff0c;Explain的用法&#xff0c;可以看到是否使用了索引&#xff0c;今天我们讲解一下SQL语句的优化及如何优化 文章目录 Mysql实战-SQL语句优化1.…

GDAL Creation Options设置

GDAL 手册上frmt_gtiff.html文件上找到这句话&#xff0c;感觉很有用&#xff0c;以备查阅&#xff1a; Creation Options TFWYES: Force the generation of an associated ESRI world file (.tfw).See a World Files section for details. RPBYES: Force the generation of a…

科技与教育的盛宴——探讨监控易在82届教装展的新机遇

在第82届中国教育装备展示会这个融合了科技与教育的盛宴上&#xff0c;监控易将展现其最新的教育信息化解决方案和技术创新成果。这不仅是一次产品的展示&#xff0c;更是一次理念、技术与需求的交流和碰撞。在这里&#xff0c;我们将一同探讨在科技日新月异的今天&#xff0c;…

GDPU 数据结构 天码行空5

一、实验目的 1&#xff0e;掌握队列的顺序存储结构 2&#xff0e;掌握队列先进先出运算原则在解决实际问题中的应用 二、实验内容 仿照教材顺序循环队列的例子&#xff0c;设计一个只使用队头指针和计数器的顺序循环队列抽象数据类型。其中操作包括&#xff1a;初始化、入队…

软考高级系统架构设计师系列之:快速掌握数据库系统核心知识点

软考高级系统架构设计师系列之:快速掌握数据库系统核心知识点 一、数据库系统二、三级模式-两层映射三、三级模式-视图四、数据库设计过程五、E-R模型六、关系代数七、规范化理论八、函数依赖九、规范化理论-键十、规范化理论-求候选键十一、规范化理论-范式十二、规范化理论-…

开关电源芯片好坏的判断标准是什么?如何判断电源芯片的好坏?

电源芯片是电子设备的一个重要元件&#xff0c;如果电源芯片损坏&#xff0c;那么设备也将停止工作。开关电源芯片是一种电源管理器件&#xff0c;可以将输入电压转换为稳定的输出电压。为了开关电源芯片可以正常稳定运行以及电子设备可以正常工作&#xff0c;对于电源芯片的检…

maven 安装本地jar失败 错误指南

Maven 安装本地 jar 失败 安装命令: mvn install:install-file -Dfile文件路径地址 -DgroupIdcom.allinpay.sdk -DartifactIdtop-sdk-java -Dversion1.0.5 -Dpackagingjar 错误描述 : Unknown lifecycle phase “.allinpay.sdk”. You must specify a valid lifecycle phase o…

机器学习-最小二乘法

概况 最小二乘法其实就是为数据(二维)拟合出一条直线&#xff0c;为(三维)数据拟合出一个面。来最大程度的是我们的样本点落在该直线上。 使得我们找到一条直线使所以的样本点尽可能靠近该直线&#xff0c;即每个样本点到直线的距离最短。 YWXB&#xff0c;W是权重&#xff0…

Python万圣节蝙蝠

目录 系列文章 前言 蝙蝠 程序设计 程序分析 运行结果 尾声 系列文章 序号文章目录直达链接1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://want5…

ES6 Symbol 数据结构

1. Symbol概念以及引入原因 ES6 引入了的一种新的原始数据类型Symbol&#xff0c;表示独一无二的值。它是 JavaScript 语言的第七种数据类型&#xff0c;前六种是&#xff1a;undefined、null、布尔值&#xff08;Boolean&#xff09;、字符串&#xff08;String&#xff09;、…

【无标题】光伏逆变器的IEC62109测试,逆变器IEC62109测试项目

光伏逆变器的IEC62109测试&#xff0c;逆变器IEC62109测试项目 逆变器又称电源调整器&#xff0c;根据逆变器在光伏发电系统中的用途可分为独立型电源用和并网用二种。根据波形调制方式又可分为方波逆变器、阶梯波逆变器、正弦波逆变器和组合式三相逆变器。对于用于并网系统的…

潮玩宇宙:收藏、交流与竞技的数字乐园

最近爆火的新项目潮玩宇宙&#xff0c;想必有很多人入场了&#xff0c;代理商宣传投资147一个月回本&#xff0c;确实是现在做到了&#xff0c;现在平台一颗宝石的价格已经超过美金了&#xff0c;还有一大部分人在等待进场&#xff0c;潮玩宇宙旗下奖券世界和养猪农场已经做了有…

Docker 安装zookeeper

一、安装单机版 1、拉取镜像 docker pull zookeeper2、创建挂载目录 mkdir -p /mydata/zookeeper/{conf,data,logs}3、新建配置文件 cd /mydata/zookeeper/conf vi zoo.cfgdataDir/data dataLogDir/logs tickTime2000 initLimit10 syncLimit5 clientPort21814、单机主机启…

电脑蓝牙与ESP32蓝牙连接,让电脑发现ESP32

win11蓝牙默认只查看常见蓝牙设备。ESP32创建的蓝牙很有可能是看不到的。 再蓝牙设备发现一栏选择高级&#xff0c;才能查看所有蓝牙设备。 只要下面几行代码&#xff0c;就能让PC发现ESP32 #include <BLEDevice.h> // 引入相关库void setup() {BLEDevice::init("…

【系统与工具】系统环境——VMware安装系统

文章目录 0.1 安装VMware0.2 下载ubuntu镜像0.3 创建系统实例0.4 安装ubuntu0.5 实例配置项0.5.1 安装VMware tools0.5.2 修改静态IP0.5.3 ssh连接 0.6 克隆0.6.1 克隆实例生成MAC地址 0.6.2 修改静态ip0.6.3 修改主机密码名称 参考&#xff1a;https://blog.csdn.net/m0_51913…

ios safari 正则兼容问题

背景: 系统是自己开发的采购管理系统; 最近升级系统之后客户反馈部分苹果手机现在在进入单据界面的时候报错, 内容显示不全; 安卓手机正常; 苹果首页是之前有使用过系统的才不行, 如果是之前没有使用过系统, 现在也是可以; 也尝试清理过缓存,更换浏览器都也是不行; 也更…

AWS SAP-C02教程6--安全

云的安全是一个重要的问题,很多企业不上云的原因就认为云不安全,特别是对安全性要求较高的企业,所以云安全是一个非常广泛且重要的话题,其实在之前章节中的组件都会或多或少讲述与其相关的安全问题,这里也会详细讲一下。本章主要通过讲述一些独立或与安全有关的组件以及网…

用Python造轮子

目录 背景安装setuptools库准备要打包的代码创建setup.py文件打包生成whl文件把库装到电脑上使用这个库 背景 如何把自己写的代码&#xff0c;打包成库方便其他人使用 安装setuptools库 正所谓想要富先修路&#xff0c;先把造轮子要用的库装上 pip install wheel pip insta…

供应链 | 零售商-供应商柔性承诺契约:一种鲁棒优化方法 (二)

原文作者&#xff1a;Aharon Ben-Tal, Boaz Golany, Arkadi Nemirovski, Jean-Philippe Vial​ 引用&#xff1a;Ben-Tal, A., Golany, B. , Nemirovski, A., & Vial, J. P… (2005). Retailer-supplier flexible commitments contracts: a robust optimization approach. …