2023年6月29日发(作者:)
React+React-Redux+React-Router+Antd搭建单页管理应⽤模板⽬录前⾔本⽂主要使⽤React全家桶⼀步步搭建单页管理应⽤,阅读本⽂需要React、React-Redux、React-Router 基础知识,使⽤react 脚⼿架create-react-app 创建项⽬提⽰:以下是本篇⽂章正⽂内容,下⾯案例可供参考,如有问题,欢迎指正。⼀、实现效果环境windows10 + node⼆、搭建步骤1.创建项⽬在cmd窗⼝中执⾏:#
安装 create-react-app ( react脚⼿架,已安装,请忽略)npm i create-react-app -g#
创建项⽬npx create-react-app day7-react-cli 项⽬⽬录如下:⽬录说明:│ .gitignore # git
忽略⽂件│ #
项⽬说明⽂件,定义项⽬依赖、描述等信息│ #
项⽬说明⽂档│ # yarn
版本锁定⽂件├─ public #
静态资源⽂件夹,该⽂件夹下的⽂件不会被打包处理,直接复制│ #
浏览器标签栏图标│ #
项⽬唯⼀html
⼊⼝模板⽂件 react root元素│ │ │ # pwa
⽂件│ #
⾃定义爬⾍⽂件└─ src # App
组件的样式 # App组件 # App组件测试⽰例⽂件 #
项⽬⼊⼝
⽂件的样式 #
项⽬⼊⼝⽂件
2.运⾏项⽬执⾏命令:#
进⼊项⽬⽬录cd day7-react-cli
#
安装依赖(我这边使⽤的是yarn,如果⽤npm: npm i
即可)yarn#
运⾏项⽬(npm run start)yarn start控制台看见如下就代表运⾏成功:会⾃动打开浏览器窗⼝,展⽰如下:三、项⽬改造1.添加redux-router、redux-router、axios、antd依赖#
状态管理库yarn add react-redux -S#
适⽤于浏览器的路由yarn add react-router-dom -S# ajax请求库yarn add axios -S# ui
组件库yarn add antd -S2.修改后⽬录,及主要修改⽂件│ .gitignore
│
│ LICENSE│
│
│
├─ public│
│
│
│
│ │
└─ src │ │ │ │ │ │ │ │ ├─ assets #
静态资源⽂件夹 │ └─images │ ├─ layout #
页⾯主体布局,展⽰左侧菜单及头部 │ │ │ │ │ └─ components │ │ #
页⾯⼆级路由 │ │ #
头部,logo
头像等 │ │ #
左侧菜单 │ └─css │ │ │ ├─ redux #
状态管理store
和各action │ │ │ ├─ action │ │ │ └─ reducer │ ├─ route │ #
页⾯⼀级路由 └─ views #
页⾯各组件 ├─ home │ ├─ login #
登录页,我这边讲 UI
和 reducer
分开了,实际可以合并在⼀起 │ │ │ └─ui │ │ ├─ page1 │ └─ page2 主要⽂件代码::import React from "react";import ReactDOM from "react-dom";import "./";import App from "./App";import { Provider } from "react-redux";import store from "redux/redux";// Provider
为⾃组件提供store对象(
这⾥引如 BrowserRouter
适合浏览器的路由实现import { BrowserRouter as Router, Route, Switch, Redirect,} from "react-router-dom";import "layout/";import Login from "views/login/login";import AppMain from "layout/app-main";export default class MainRouter extends Component { //
此处渲染
第⼀层路由 render() { return (
页⾯的主要架构,考虑是否需要添加登陆判断 */export default class AppMain extends Component { render() { return (
被包裹组件,因为他不是Router
直接渲染的组件,如果不包裹它没有history (`/app/${key}`); }; render() { return (
); }}//这边返回包裹后的组件//
这边返回包裹后的组件export default withRouter(SiderMenu);注意下,在项⽬根⽬录⾥⾯添加了⼀个 ⽤作配置代理服务器地址规则,前后端分离的项⽬,如果后端不允许跨域,需要我们⾃⼰⽤代理来完成ajax请求://
如下配置会将请求本地地址3000/student/*
代理到5000const createProxyMiddleware = require("http-proxy-middleware");s = function (app) { ( "/student", createProxyMiddleware({ target: "localhost:5000", changeOrigin: true, pathRewrite: { "^/student": "", }, }) );//
如下配置会将请求本地地址3000/person/*
代理到6000 ( "/person", createProxyMiddleware({ target: "localhost:6000", changeOrigin: true, pathRewrite: { "^/person": "", }, }) );};请求的地⽅://
这边可以直接填本地的地址,("/student/login").then((res) => { erInfo({ ..., }); ("/app/home"); });总结
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1687987915a64230.html
评论列表(0条)