ReactJS单页面应用之项目搭建
初衷
因接手的项目前端采用reactjs+antd,为把控项目中的各个细节,所以想做一些整理,以免后期遗忘。
创建及启动项目
# 全局安装create-react-app
# 如果曾经安装过,可先移除: npm uninstall -g create-react-app
npm install -g create-react-app
# 创建项目sysmgmt
npx create-react-app sysmgmt --template typescript
# 进入项目目录
cd sysmgmt
# 启动
npm start
为项目增加路由功能
安装依赖
# 安装react-router-dom
npm install --save react-router-dom @types/react @types/react-dom @types/react-router
添加及修改相关文件
@/src/routes/index.tsx
import { lazy, LazyExoticComponent } from 'react';
export type RouterType = {
path: string,
component: LazyExoticComponent<() => JSX.Element>,
}[]
const Routers: RouterType = [{
path: 'home',
component: lazy(() => import ('../pages/Home'))
},{
path: 'details',
component: lazy(() => import ('../pages/Details'))
},]
export default Routers
@/src/App.tsx
import React, { Suspense } from 'react'
import './App.css';
import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom';
import Routers from './routes';
import Loading from './components/Loading';
import BasicLayout from './layout/BasicLayout';
function App() {
return (
<BrowserRouter>
<Suspense fallback={<Loading />}>
<Routes>
<Route path='/' element={<BasicLayout />}>
{
Routers.map(router => {
return (
<Route
key={router.path}
path={router.path}
element={<router.component />}
>
</Route>
)
})
}
<Route path='' element={<Navigate to={'home'}/>}/>
</Route>
</Routes>
</Suspense>
</BrowserRouter>
);
}
export default App;
项目源码
参考资料
https://www.jianshu.com/p/727d836d1d47
https://cloud.tencent.com/developer/article/1842697
https://cloud.tencent.com/developer/article/2098078
ReactJS单页面应用之项目搭建的更多相关文章
- 单页面应用 之 项目中集成插件vue-router
\es6\my-complex-project>npm install vue-router -S (S 表示这个包下载到,当前的项目中) 导入写好的 router 这里尽量使用 @ ...
- vue如何将单页面改造成多页面应用
问题描述: 手头有一个项目是使用 vue-cli 搭建的单页面应用.项目分为了管理平台和用户查看页面,用户查看页面是很简单的页面,但是在加载过程中,却加载了整个应用的打包代码,量重且影响了响应和体验. ...
- 建立多页面vue.js项目
介绍 根据需求,我们希望建立一个多页面的vue.js项目,如何改造单页面vue.js项目为多页面项目?跟着我的步伐看下去吧. 1.创建单页面vue.js项目 简单的记录一下创建步骤: --安装cnpm ...
- Vue-Router + Vuex 实现单页面应用
效果查看(一个食品安全网,大家也可以发布一些食品安全的见闻,尽举手之劳): 源代码:https://pan.baidu.com/s/1i43H3LV 如果想要服务器端代码可以在评论里说明一下 利用vu ...
- Vue - 使用命令行搭建单页面应用
使用命令行搭建单页面应用 我们来看一下最后完成的效果: 大纲 1. 下载 node, git, npm 2. 使用命令行安装一个项目 一. 下载工具 node , git 的下载大家可以去官网自行下 ...
- 基于laravel5.4 vue 和vue-element搭建的单页面后台CMS
介绍 该项目后台是基于vue和laravel搭建的单页面CMS系统,包含了文章管理,权限管理,用户管理等基本模块. 前台使用了传统web技术,laravel渲染搭建了个博客系统 github地址:ht ...
- phpcms-v9系统搭建wap网站及单页面
如需要绑定域名为wap.domain.com,作下如操作: 一.把wap.domain.com域名绑定到你的这个网站主机上. 二.在网站后台——模块——手机门户域名里面填写“http://wap.do ...
- Spring MVC 项目搭建 -4- spring security-添加自定义登录页面
Spring MVC 项目搭建 -4- spring security-添加自定义登录页面 修改配置文件 <!--spring-sample-security.xml--> <!-- ...
- Vue-cli创建项目从单页面到多页面
vue-cli创建项目从单页面到多页面 对于某些项目来说,单页面不能很好的满足需求,所以需要将vue-cli创建的单页面项目改为多页面项目. 需要修改以下几个文件: 1.下载依赖glob $npm i ...
- Vue-cli创建项目从单页面到多页面2-history模式
之前讲过怎样将vue-cli创建的项目改造成多页面(vue-cli创建项目从单页面到多页面),今天说一下怎样在多页面的前提下使用history模式. 如何使用history模式 因为vue默认的has ...
随机推荐
- 01-搭建小巧完善的Kubernetes环境
安装Docker Docker安装和基础命令 安装Minikube minkkube start 安装minikube curl -LO https://storage.googleapis.com/ ...
- 2023 年 CCF 春季测试赛模拟赛 - 2 题解
T1 约数和 标准解法 \(n = a_1^{b_1} \times a_2^{b_2} \dots a_k^{b_k}\) 那么根据算术基本定理的推广,约数个数和约数和都是可以快速计算得到 约数和 ...
- lg9018题解
#include<bits/stdc++.h> using namespace std; #define N 2000010 #define int long long #define m ...
- 51nod 1594 Gcd and Phi
Link 题解: $ans = \sum_{i = 1}^{n}\sum_{j = 1}^{n}phi(gcd(phi(i), phi(j)))$ $=\sum_{d = 1}^{n}phi(d)\s ...
- mysql 备份定时任务
#!/bin/bash rq=`date +%Y-%m-%d-%H` #日期 #数据库信息 host=127.0.0.1 user=root password=xxx dbname=script #放 ...
- Java运算符(复习)
运算符 运算符:对字面量或者变量进行操作的符号 表达式:用运算符把字面量或者变量连接起来,符合Java语法的式子就可以称为表达式. 算数运算符 符号 作用 + 加法作用 - 减法作用 * 乘法作用 / ...
- C. Tea Tasting
https://codeforces.com/contest/1795/problem/C 用二分+前缀和+差分卡过 #include <iostream> #include <cs ...
- MySQL数据库SQL语法常规操作
必备sql和表关系及授权 graph LR 执行1[必备sql和授权] 执行2[SQL强化和实践] 执行3[索引和函数以及存储过程] 执行4[Python操作mysql和应用] 执行5[常见SQL语句 ...
- Django Rest Framework中文文档:Serializer relations
这是对DRF官方文档:Serializer relations的翻译,根据个人的理解对内容做了些补充.修改和整理. 一,django模型间的关系 在我们对数据进行建模时,最重要的一点就是根据功能需求分 ...
- 最大流模板(EK,Dinic
一.EK EK算法:用bfs找增广路直到找不到为止.找到则更新最大流和残余网络,找不到则结束. 残余网络:对于一条走过的边,其正向边权值减少相应值,反向边权值增加相应值(用于反悔). 增广路:从所求起 ...