- This app is the frontend of this repository
- Simple react app which shows how to integrate socket.io-client with @reduxjs/toolkit
- Singleton socket client which has all socket functions (connect, disconnect, emit and on)
- Note: Using singleton pattern to make sure that we have a single instance throughout the app
- Create an instance of socket client in index.jsx file and use it throughout the app
- Use createAsyncThunk from @reduxjs/toolkit because it creates the following 3 types automatically (pending, fulfilled, rejected)
- webpack
- react
- @reduxjs/toolkit
- socket.io-client
- nodeJS > 14.X.X or Docker
- Clone repo =>
git clone git@github.com:DonAdam2/frontend-socket-io.git
- Navigate to project directory
cd frontend-socket-io
- Install dependencies =>
yarn install
- Start the development server =>
yarn start
This build relies on Prettier formatter to enforce code style. And ESLint for identifying problematic patterns found in the code.
-
Setting up prettier:
1- You can find steps on how to set up prettier formatter with WebStorm/PhpStorm here.
Notes:
- It's better to use the local
node_modules
version of prettier instead of a global one, to avoid version conflicts (in case the globally installed version does not match the version specified inpackage.json
).
2- Follow the next steps to set up prettier and eslint in VS Code:
-
Install
prettier
plugin -
Install
eslint
plugin -
Open VS Code settings
CTRL + ,
:a- Search for
formatter
=> check Format on saveb- Search for
prettier
=> add.prettierrc
in Prettier: Config Path section && check Prettier: Require Config
3- Please refer to other tutorials if you are using a different IDE.
- It's better to use the local
In the project directory, you can run:
Runs the app in the development mode.
It will open http://localhost:3000 automatically in the browser to see your app.
All changes will be injected automatically without reloading the page.
You will see in the console the following:
- All redux store related changes
- Any of the following errors:
- Linting errors.
- Code format errors (because of prettier)
Builds the app for production to the dist
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!
Serves the app on http://localhost:8080/
from the dist
folder to check the production version.
Note: Use this script only if you ran the build script yarn build
.
It allows you to analyze the bundle size.