初衷

因接手的项目前端采用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;

项目源码

sysmgmt

参考资料

https://www.jianshu.com/p/727d836d1d47

https://cloud.tencent.com/developer/article/1842697

https://cloud.tencent.com/developer/article/2098078

ReactJS单页面应用之项目搭建的更多相关文章

  1. 单页面应用 之 项目中集成插件vue-router

    \es6\my-complex-project>npm install  vue-router -S    (S 表示这个包下载到,当前的项目中) 导入写好的  router 这里尽量使用  @ ...

  2. vue如何将单页面改造成多页面应用

    问题描述: 手头有一个项目是使用 vue-cli 搭建的单页面应用.项目分为了管理平台和用户查看页面,用户查看页面是很简单的页面,但是在加载过程中,却加载了整个应用的打包代码,量重且影响了响应和体验. ...

  3. 建立多页面vue.js项目

    介绍 根据需求,我们希望建立一个多页面的vue.js项目,如何改造单页面vue.js项目为多页面项目?跟着我的步伐看下去吧. 1.创建单页面vue.js项目 简单的记录一下创建步骤: --安装cnpm ...

  4. Vue-Router + Vuex 实现单页面应用

    效果查看(一个食品安全网,大家也可以发布一些食品安全的见闻,尽举手之劳): 源代码:https://pan.baidu.com/s/1i43H3LV 如果想要服务器端代码可以在评论里说明一下 利用vu ...

  5. Vue - 使用命令行搭建单页面应用

    使用命令行搭建单页面应用 我们来看一下最后完成的效果: 大纲 1. 下载 node, git, npm 2. 使用命令行安装一个项目 一. 下载工具 node , git  的下载大家可以去官网自行下 ...

  6. 基于laravel5.4 vue 和vue-element搭建的单页面后台CMS

    介绍 该项目后台是基于vue和laravel搭建的单页面CMS系统,包含了文章管理,权限管理,用户管理等基本模块. 前台使用了传统web技术,laravel渲染搭建了个博客系统 github地址:ht ...

  7. phpcms-v9系统搭建wap网站及单页面

    如需要绑定域名为wap.domain.com,作下如操作: 一.把wap.domain.com域名绑定到你的这个网站主机上. 二.在网站后台——模块——手机门户域名里面填写“http://wap.do ...

  8. Spring MVC 项目搭建 -4- spring security-添加自定义登录页面

    Spring MVC 项目搭建 -4- spring security-添加自定义登录页面 修改配置文件 <!--spring-sample-security.xml--> <!-- ...

  9. Vue-cli创建项目从单页面到多页面

    vue-cli创建项目从单页面到多页面 对于某些项目来说,单页面不能很好的满足需求,所以需要将vue-cli创建的单页面项目改为多页面项目. 需要修改以下几个文件: 1.下载依赖glob $npm i ...

  10. Vue-cli创建项目从单页面到多页面2-history模式

    之前讲过怎样将vue-cli创建的项目改造成多页面(vue-cli创建项目从单页面到多页面),今天说一下怎样在多页面的前提下使用history模式. 如何使用history模式 因为vue默认的has ...

随机推荐

  1. adb server version (36) doesn‘t match this client (41)解决

    问题描述:夜神模拟器,dos窗口下,然后adb devices发现连不上模拟器了,报adb server version (36) doesn't match this client (41); ki ...

  2. Educational Codeforces Round 137 (Rated for Div. 2) - D. Problem with Random Tests

    期望 + 暴力 [Problem - D - Codeforces](https://codeforces.com/contest/1743/problem/E) 题意 给出一个长度为 \(n\;(1 ...

  3. Matplotlib 实现画中画

    需要导入的包 inset_axes 要实现画中画,即在原画轴上添加新轴,需要用到mpl_toolkits.axes_grid1.inset_locator的inset_axes. 基本用法 new_a ...

  4. linux中用户和用户组的概念

    大家好,我们继续来上linux课程,这节课我们从以下几点来进行讲解: Linux权限的概念: UID相关概念 用户和用户组的关系 用户和账户的区别 Linux是一个多用户多任务的的操作系统,很多时候, ...

  5. .net5的安装部署条件

    1.安装vs2019最新版本 2.安装 .net5最新版本的的Hosting Bundle 下载地址:https://dotnet.microsoft.com/download/dotnet/5.0 ...

  6. lbaas

    目录 - LBaaS v2 - 负载均衡概念 - 服务器池 Pool - 监听器 Listener - L7 转发策略 l7 policy - 负载均衡算法 Algorithms - 健康监测 Mon ...

  7. Pycharm 2022.2激活码到2023年7月,亲测有效

    33MEHOB8W0-eyJsaWNlbnNlSWQiOiIzM01FSE9COFcwIiwibGljZW5zZWVOYW1lIjoiUG9saXRla25payBNZXJsaW1hdSBNZWxha ...

  8. ETCD 实现服务发现讲解

    租约:具有时间有效期,键绑定到租约后,当租约到期失效,绑定到的租约的键也会被删除. 创建租约 etcdctl lease grant 600 lease 694d81f509b7940a grante ...

  9. 函数记录CAM

    UF_PARAM_generate 生成刀轨 UF_PARAM_duplicate  此函数创建与"old_obj_tag"类型相同的新对象.它使用'old_obj_tag'数据初 ...

  10. 如何修改驱动使得NVIDIA Geforce GTX 970, 980, 980 TI and Titan X等显卡可以在Win XP/Win 2003 server x64下驱动?

    感谢Matt,一个老外,非常好的修改方法. 本人亲测成功. I recently built a new computer to better accommodate the forthcoming ...