redux 架构
1、创建传统的react+redux架构环境
create-react-app react-admin
自行安装redux、redux-thunk、react-redux、immer并设计架构(不支持TS)
2、创建react+redux的TS环境
create-react-app react-admin --template typescript
自行安装redux、redux-thunk、react-redux、immer并设计架构(支持TS和ES6)
3、创建react+redux的TS环境(最佳实践)
create-react-app react-admin --template redux-typescript
无须再安装redux等,默认就已经集成了@reduxjs/toolkit的Redux架构
参考链接:https://github.com/reduxjs/cra-template-redux-typescript
本次项目的代理方式
// 在src/setupProxy.js
const { createProxyMiddleware } = require('http-proxy-middleware')
module.exports = function(app) {
app.use(
'/api',
createProxyMiddleware({
target: 'http://localhost:9999',
changeOrigin: true
})
);
}
@reduxjs/toolkit 小结
-
在@reduxjs/toolkit中集成其它中间件:redux-logger,还要安装 @types/redux-logger来支持TS环境 import logger from 'redux-logger'; // 需要安装 @types/redux-logger
-
中间件的使用 export const store = configureStore({ // 子store reducer: { counter, user }, // 安装中间件 需要考虑原有的中间件 使用concat连接新的中间件 middleware: (getDefaultMiddlewares)=>(getDefaultMiddlewares().concat(logger)) });
-
在整理文件的时候出现很多其他文件的干扰 只可以删除尝试
-
如何解决ts环境下'@'报错问题?在tsconfig.json中添加 baseUrl和paths 选项。参考链接:https://www.typescriptlang.org/tsconfig#compilerOptions
-
入门学习TS
-
启动项目时不打开浏览器,scripts/start.js中注释掉 openBrowser()。
-
jsx 语法必须写在tsx文件中 不然会报错