Change log
01 Create project
- Ionic React quickstart, https://ionicframework.com/docs/react/quickstart
- React components (App, Home), https://reactjs.org/docs/components-and-props.html
- Ionic React navigation, https://ionicframework.com/docs/react/navigation
- Ionic pages, https://ionicframework.com/docs/layout/structure
02 Define a functional modular structure
- Remove pages & components root modules
- Add functional modules (e.g. 'todo')
- Add pages and components into modules
- Define a new functional component with props, https://reactjs.org/docs/components-and-props.html
03 Define component state
- React state & lifecycle, https://reactjs.org/docs/state-and-lifecycle.html
- React state hook, https://reactjs.org/docs/hooks-state.html
04 Extract the state from presentational components
- React custom hooks, https://reactjs.org/docs/hooks-custom.html
05 Fetch data from REST services
- Axios lib, https://github.com/axios/axios
- Ionic list, https://ionicframework.com/docs/api/list
- React effect hook, https://reactjs.org/docs/hooks-effect.html
06 Use reducers to manage complex behaviour
- React reducer hook, https://reactjs.org/docs/hooks-reference.html#usereducer
07 Lift state up using context providers
- Lifting state up, https://reactjs.org/docs/lifting-state-up.html
- React context, https://reactjs.org/docs/context.html
- React use context hook, https://reactjs.org/docs/hooks-reference.html#usecontext
08 Receive server-side notifications via web sockets
- Writing web socket client apps, https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications