mirror of
https://github.com/microsoft/frontend-bootcamp.git
synced 2026-01-26 14:56:42 +08:00
24 lines
1.2 KiB
Markdown
24 lines
1.2 KiB
Markdown
# Step 2.8: Reduce Boilerplate (Exercise)
|
|
|
|
[Lessons](../) | [Exercise](./exercise/) | [Demo](./demo/)
|
|
|
|
If you don't already have the app running, start it by running `npm start` from the root of the `frontend-bootcamp` folder. Click the "exercise" link under day 2 step 8 to see results.
|
|
|
|
> Hint! This section is tricky, so the whole solution is inside `demo` as usual. Feel free to copy & paste if you get stuck!!
|
|
|
|
1. Open up `exercise/src/reducers/index.ts`
|
|
|
|
2. Rewrite the reducer functions `todoReducers` and `filterReducers` with the help of [`createReducer()`](https://redux-starter-kit.js.org/api/createreducer)
|
|
|
|
3. Rewrite the `reducer()` function with [`combineReducers()`](https://redux.js.org/recipes/structuring-reducers/using-combinereducers)
|
|
|
|
4. Open up `exercise/src/reducers/pureFunctions.ts`
|
|
|
|
5. Rewrite all the reducers related to the todos by following the instructions in the code
|
|
|
|
## Further reading
|
|
|
|
- [`immer`](https://github.com/mweststrate/immer) - Improves ergonomics of working with immutables by introducing the concept of mutating a draft
|
|
|
|
- [`redux-starter-kit`](https://github.com/reduxjs/redux-starter-kit) - Help address common concerns of Redux in boilerplate and complexity
|