React Architecture Patterns for Your Projects
React Architecture Patterns for Your Projects
Aman Mittal
·
Follow
·
1.2K
6
React is an un-opinionated framework in the front-end
directory’s purpose.
be viewed as:
└── /src
├── /assets
├── /components
├── /context
├── /hooks
├── /pages
├── /services
├── /utils
└── App.js
├── index.js
called /api.
Common Modules
One advantage of React being un-opinionated is it
starting point.
consider:
└── /src
├── /components
| ├── /Button
| | ├── Button.js
| | ├── Button.styles.js
| | ├── Button.test.js
| | ├── Button.stories.js
| ├──index.js
component
styles
● Button.test.js file that contains tests
// /src/components/index.js
complexity.
// /src/hooks/useTogglePasswordVisibility/index.js
setRightIcon('eye-off');
setPasswordVisibility(!passwordVisibility);
} else if (rightIcon === 'eye-off') {
setRightIcon('eye');
setPasswordVisibility(!passwordVisibility);
};
return {
passwordVisibility,
rightIcon,
handlePasswordVisibility
};
};
this scenario. This hook also handles its own state and
subdirectories:
└── /src
├── /hooks
| ├── /useTogglePasswordVisibility
| | ├── index.js
| | ├── useTogglePasswordVisibility.test.js
| ├──index.js
// some file
project.
"compilerOptions": {
"baseUrl": "src"
},
"include": ["src"]
or ~components.
module.exports = {
resolve: {
extensions: ['js'],
alias: {
'@components': path.resolve(__dirname,
'src/components')
};
This will allow you to import using a prefix. For
be imported as:
documentation here.
currently available.
nowPlaying: () =>
fetch(`${BASE_URL}/movie/now_playing?api_key=$
{API_KEY}&page=1`).then(res =>
res.json()
)
};
['movies', 'nowPlaying'],
moviesApi.nowPlaying
);
return {
nowPlayingLoading,
nowPlayingData
};
};
/services.
separate flows.
return (
<ThemeProvider>
<QueryClientProvider>
<Routes />
</QueryClientProvider>
</ThemeProvider>
it.
Conclusion
Patterns or practices described in this article are