react+typescript+router框架搭建笔记
剃刀锋利,越之不易;这次的React框架搭建并没有按照全新造轮子的方式进行,而是根据官方给出的脚手架进行添砖加瓦。
智者有云,得渡人稀。
——《迦陀奥义书》
参考资料create-react-app,react-router-dom
安装create-react-app
平时工作中用的VUE更多,这次搭建react框架,使用nvm新安装了node v11.15.0的版本,在当前版本安装了最新create-react-app
npm install -g create-react-app
文章图片
CREATE DEMO项目
不使用typescript命令
npm create-react-app react-frame-demo
使用typescript命令
npm create-react-app my-app --template typescript# oryarn create react-app my-app --template typescript
开发环境配置proxy
用npm 或 yarn 安装http-proxy-middleware
$ npm install http-proxy-middleware --save
$ # or
$ yarn add http-proxy-middleware
创建文件setupProxy.js,在src下面,其中内容
const proxy = require('http-proxy-middleware');
module.exports = function(app) {
app.use(
'/api/*',
proxy({
target: 'https://www.fastmock.site/mock/02e5a37115fa75c7c564bca4cb4d7829/',
changeOrigin: true,
})
);
};
添加环境变量environment variables
创建文件.env.development,.env.production
变量名以REACT_APP开头
REACT_APP_NODE_ENV='development'
REACT_APP_HTTPBASEURL='/api'
添加CSS RESET
yarn add postcss-normalize
在index.css添加
@import-normalize;
/* bring in normalize.css styles */
添加ROUTER
由于使用的typescript,使用路由需要添加两个包react-router-dom,@types/react-router-dom
yarn add react-router-dom
yarn add @types/react-router-dom
封装路由
路由配置:router/index.ts
import Home from '../views/Home';
import About from '../views/About';
import Link from '../views/Link';
import Other from '../views/Other';
const routes = [
{
path: '/home',
component: Home
},
{
path: '',
component: Other,
routes: [
{
path: '/about',
component: About
},
{
path: '/link',
component: Link
}
]
}
];
export default routes;
定义route interface:assets/interface.ts
interface routeInterface {
path: string,
component: any,
routes?: Array
}export type RouteInterface = routeInterface
路由方法 assets/common.tsx
import React from 'react';
import {
Route
} from 'react-router-dom';
import { RouteInterface } from './interface';
const RouteWithSubRoutes = (route: RouteInterface, index: number) => {
return (
(
)}
/>
);
}export {
RouteWithSubRoutes
}
调用路由App.tsx
最后在页面使用,调用路由方法显示解析各个组件页面。
import React from 'react';
import {
BrowserRouter as Router,
Switch,
Link
} from 'react-router-dom';
import routes from './router';
import { RouteWithSubRoutes } from './assets/common';
import { RouteInterface } from './assets/interface';
const App: React.FC = () => {
return (
- Home 首页
- About 关于
- Link 联系
{routes.map((route: RouteInterface, i: number) => {
return RouteWithSubRoutes(route, i)
})}
);
}export default App;
【react+typescript+router框架搭建笔记】完整DEMO地址
文章图片
推荐阅读
- android第三方框架(五)ButterKnife
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 六步搭建ES6语法环境
- Spring|Spring 框架之 AOP 原理剖析已经出炉!!!预定的童鞋可以识别下发二维码去看了
- (1)redis集群原理及搭建与使用(1)
- 桁架搭建有什么价值()
- 构建App(一)(框架与结构)
- VM|VM ware 的 harbor 私有仓库搭建 (Ubuntu16.04)
- PHP开发-Mac搭建ThinkPHP5.0
- laravel框架泛解