一个适合练手的react项目
项目以及项目笔记会不断更新
体会vue与react项目区别
声明:本项目参考了滴滴大佬的vue项目,原vue项目请关注ustbhuangyi
项目运行
npm install
npm start
项目中用到的一些自定义types在common/js/typings目录下
可以通过dts-gen为没有types的npm包自动生成d.ts声明文件
项目笔记
D1
D2
- 1、Tab组件与路由
- 2、基于better-scroll的react轮播图组件
- 3、http-proxy-middleware
- 4、create-react-app搭建代理(一)
- 5、create-react-app搭建代理(二)
- 6、scroll组件:移动端滚动
- 7、loading组件
- 8、图片懒加载
D3
- 1、图片懒加载组件优化
- 2、歌曲信息页&typescript的用法
- 3、滚动列表复用组件
- 4、异步获取数据&保存组件状态
- 5、除Link外控制路由跳转:withRouter & typescript
- 6、redux使用方法
D4
- 1、withRouter&connect&typescript的使用
- 2、页面切换与异步数据请求bug
- 3、getDerivedStateFromProps使用技巧
- 4、基于react-transition-group的react过渡动画
- 5、react-lodable组件动态导入
- 6、react中输入框防抖debounce
D5
部署
ToDo
- 完善项目中typescript类型
- store,action类型
- 数据类型
- 无状态组件
React.SFC
- 有状态组件
readonly state : Readonly<IState>,react已经对props、props的属性与state的属性作了只读处理
- react事件类型
- ref类型
React.RefObject<Scroll> --> <Scroll ref={this.toplist}></Scroll>
- 媒体事件类型
const { currentTime } : { currentTime: number } = e.target as HTMLMediaElement
- 项目本地部署
- create-react-app优化打包
- electron构建exe
页面展示
This project was bootstrapped with Create React App.
Available Scripts
In the project directory, you can run:
npm start
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
npm test
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
npm run build
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
npm run eject
Note: this is a one-way operation. Once you eject
, you can’t go back!
If you aren’t satisfied with the build tool and configuration choices, you can eject
at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject
will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
You don’t have to ever use eject
. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
Learn More
You can learn more in the Create React App documentation.
To learn React, check out the React documentation.