LinkedIn React Redux Tutorial - tifojo/knowledge_base GitHub Wiki
https://www.linkedin.com/learning/building-modern-projects-with-react/the-react-entry-point
Starting a React project from scratch
- Initialize an npm package:
npm init -y - Create an
index.htmlwith root element and script tag pointing to bundle.js - Install Babel:
npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/preset-react - Create
.babelrc:
{
"presets": ["@babel/preset-env", "@babel/preset-react"]
}
- Create
index.js,app.js,app.css npm install react react-dom
Configure Webpack
- Install Webpack:
npm install --save-dev webpack webpack-cli webpack-dev-server style-loader css-loader babel-loader - Create
webpack.config.js: extensions, loaders, outputs, dev server, etc. - React hot loader:
npm install --save-dev react-hot-loaderand wrap top-level App component
Redux best practices
- Export both connected and unconnected versions of a component (unconnected version is useful for testing)
- Don't dispatch actions or perform async operations inside reducers (use thunk instead)
- Components that are connected to the store become less reusable. Consider abstracting out a parent component
Adding redux-thunk
npm install redux-thunk redux-devtools-extension @babel/runtime # for async thunksnpm install --save-dev @babel/plugin-transform-runtime- Add
@babel/plugin-transform-runtimeto.babelrc