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

使用React和AntDesign构建初始前端项目及路由配置

使用React和AntDesign构建初始前端项目及路由配置

  • 创建React项目
    • 1.安装React脚手架
    • 2.利用React脚手架创建项目
    • 3.安装AntDesign框架
      • 3.1 使用 cd my-react-app 进入新项目
      • 3.2 安装
      • 3.3 页面中配置使用
    • 4.集成router路由
      • 4.1 安装 react-router-dom
      • 4.2 全局创建路由文件及页面配置
      • 4.3 配置index.js文件

PS:已安装好node.js,npm或yarn等

创建React项目

1.安装React脚手架

使用npm命令:npx create-react-app
这一步是临时安装react脚手架create-react-app

全局安装create-react-app脚手架
npm命令: npm install -g create-react-app
yarn命令:yarn global add create-react-app

npx和npm命令区别:
npx用于临时安装一个模块,使用过后会自动删除,避免了全局安装带来的污染。
npm主要用于管理和安装依赖包

2.利用React脚手架创建项目

使用create-react-app创建项目:
使用命令:create-react-app my-react-app
my-react-app是项目名称,可根据实际项目修改
在这里插入图片描述
出现以下提示说明项目初步创建成功:
在这里插入图片描述

3.安装AntDesign框架

安装前切记目录切入项目文件夹下!!!

3.1 使用 cd my-react-app 进入新项目

在这里插入图片描述

3.2 安装

第一种方法:使用npm命令安装:npm install antd
在这里插入图片描述

第二种方法:使用yarn命令安装: yarn add antd
在这里插入图片描述
npm和yarn安装方法二者选其一就行

3.3 页面中配置使用

找到antd的样式文件,路径为:D:*\my-react-app\node_modules\antd\dist
留意文件名称,现在样式文件名称为 reset.css
在这里插入图片描述
在src文件夹下面的index.js中引入antd的样式文件
import ‘antd/dist/reset.css’;

在项目文件夹src中新建文件夹命名为:pages
在pages中新建文件夹命名为:newtry
并在newtry文件夹中新建tsx文件命名为:try.tsx

import { Button, DatePicker } from 'antd';
import React from 'react';
// import React from 'react';export default function Newtry() {return (<><Button type="primary">PRESS ME</Button><DatePicker placeholder="select date" /></>)
};

在app.js文件中引入Newtry组件测试是否正常显示:

// import logo from './logo.svg';
import './App.css';
import Newtry from './pages/newtry/try.tsx'function App() {return (<div className="App">{/* <header className="App-header"><img src={logo} className="App-logo" alt="logo" /><p>Edit <code>src/App.js</code> and save to reload.</p><aclassName="App-link"href="https://reactjs.org"target="_blank"rel="noopener noreferrer">Learn React</a></header> */}<Newtry></Newtry></div>);
}export default App;

使用yarn install 安装依赖
启动项目: yarn start
项目页面可看到以下效果说明antd框架引入成功
在这里插入图片描述

4.集成router路由

4.1 安装 react-router-dom

第一种方法: 使用npm命令:
npm install react-router-dom
在这里插入图片描述

第二种方法:使用yarn命令
yarn add react-router-dom
在这里插入图片描述

4.2 全局创建路由文件及页面配置

(1)新建页面
在pages中新建两个文件夹分别命名为: welcome、login
并在每个文件夹中新建tsx文件:index.tsx
在这里插入图片描述
在 src/pages/welcome/index.tsx 文件中添加以下代码:

import React from "react";
export function Welcome() {return (<div>欢迎页</div>);
}

在这里插入图片描述
在 src/pages/login/index.tsx 文件中添加以下代码:

import React from "react";
export function Login() {return (<div>登录页,欢迎您!</div>);
}

(2)创建路由文件
在项目文件夹src中新建文件夹命名为:router
在router中新建txs文件命名为: index.tsx
在这里插入图片描述
在src/router/index.tsx文件中添加以下代码:

import React from "react";
import { Navigate, createHashRouter } from "react-router-dom";
import { Login } from '../pages/login/index.tsx';//导入页面文件
import { Welcome } from '../pages/welcome/index.tsx';
//注册全局路由
export const globalRouters= createHashRouter([{path:'/',element:<Navigate to='/welcome' />},{path:'/welcome',element:<Welcome/>},{path:'/login',element:<Login/>}
])

4.3 配置index.js文件

在src/index.js中加入以下代码

import { RouterProvider } from 'react-router-dom';
import { globalRouters } from './router/index';
<RouterProvider router ={globalRouters}></RouterProvider>

以下为完整的index.js文件

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import 'antd/dist/reset.css';
import { RouterProvider } from 'react-router-dom';
import { globalRouters } from './router/index';const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<React.StrictMode><App /><RouterProvider router ={globalRouters}></RouterProvider></React.StrictMode>
);reportWebVitals();

启动项目测试:使用yarn start或者npm start启动,打开后页面显示为下图,路由部署成功。
在这里插入图片描述
目前可通过修改 #/ 后的内容切换页面,例如将上图中welcome更换为login,页面显示为:
在这里插入图片描述
(因为此时App.js中引入的组件没有删除,所有页面中间仍然能看到按钮和日历组件)


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

相关文章:

  • vscode修改选中文字颜色及当前tab颜色
  • 红黑树
  • C++动态规划及九种背包问题
  • ESP RainMaker OTA 自动签名功能的安全启动
  • 井盖异动传感器:为城市安全加码
  • MATLAB 手动实现点云投影滤波器 (76)
  • 51单片机
  • 【赵渝强老师】管理MySQL的用户
  • 电子电气架构--- 智能汽车电子架构的核心诉求
  • 嵌入式day32
  • Linux:Bash中的命令介绍(简单命令、管道以及命令列表)
  • 【Docker深入浅出】【四】单体应用容器化与Dockerfile怎么写
  • 【精选】推荐7款AI论文一键生成论文、开题报告和文献综述网站
  • 鹏城杯 2022 取证writeup
  • 秋招力扣Hot100刷题总结——双指针
  • React18快速入门教程
  • 解决 VMware 中 Ubuntu文件系统磁盘空间不足
  • SPI(Service Provider Interface)机制示例及流程图
  • 【MySQL】MyISAM Static 与 MyISAM Dynamic 的区别
  • Apeaksoft Video Converter Ultimate for Mac:强大的视频转换与编辑工具