- Try to keep pages server component;
- Use BEM
- Use FC generic for Component
- Use the same node version (v20.9.0)
- Next components and utils
- React
- Third libraries
- React components
- Utils
- Style
-
Pages are stored in the app folder
-
Naming -> CategoriesPage, CategoryPage
File naming is kebab-case
- User.jsx => bad
- user.jsx => good
- loginCard.jsx => bad
- LoginCard.jsx => bad
- login-card.jsx => good
-
Creating component
modal index.tsx style.scss card index.tsx style.scss -
Component naming is PascalCase
<UserComponent /> -
Component is made without margin
Hooks naming is camelCase
useFetch
Sass folder -> variables.scss
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
- Configure the top-level
parserOptionsproperty like this:
export default {
// other rules...
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: ['./tsconfig.json', './tsconfig.node.json'],
tsconfigRootDir: __dirname,
},
}- Replace
plugin:@typescript-eslint/recommendedtoplugin:@typescript-eslint/recommended-type-checkedorplugin:@typescript-eslint/strict-type-checked - Optionally add
plugin:@typescript-eslint/stylistic-type-checked - Install eslint-plugin-react and add
plugin:react/recommended&plugin:react/jsx-runtimeto theextendslist