1- Храните в магазине только те данные, которые вам нужны

Это не означает, что вам нужно хранить все в своем магазине, потому что вы используете магазин. Позвольте мне привести несколько примеров, чтобы прояснить это;

Вы должны хранить их в своем магазине; валюты, страны, текущий пользователь… короче, любые статические данные, которые не нужно постоянно обновлять.

Вы не должны использовать магазин для; Любые данные, относящиеся к странице, например, допустим, у нас есть страница со списком пользователей. Нам не нужно хранить эти данные в магазине, потому что они все равно будут изменены или обновлены при следующем посещении страницы.

Кроме того, использование хранилища для чего-то, для чего вы не должны использовать хранилище, усложняет простой процесс. Добавляет дополнительный слой, которого вообще не должно быть.

2- Внедрите библиотеки в свои сервисы

Итак, я вижу множество проектов, которые выставляют зависимости для всего приложения. Возьмем, к примеру, Аксиос. Вы можете использовать Axios везде, и это будет работать отлично. Но что, если вам нужно перейти на другую библиотеку HTTP-запросов? Или что, если Axios выпустит новую основную версию и все изменит? В этом случае вам необходимо обновить каждое использование Axios в вашем приложении.

Вот что вы должны сделать вместо этого;

Оберните Axios в HttpService и предоставьте там некоторые стандартные методы, такие как get, post, patch… и т. д. И не используйте Axios напрямую где-либо еще, если вам это не нужно.

Вот пример HttpService.

3- Не впихивайте все в свой помощник.

Вспомогательные сервисы не должны быть мешаниной общих методов. Методы вспомогательных сервисов не должны содержать никакой бизнес-логики. Если ваш метод содержит бизнес-логику, вам, вероятно, следует разделить свой метод и использовать ту часть, которая содержит бизнес-логику, в другой связанной службе. Вспомогательные службы могут быть опасны и могут вызвать у вас головную боль, если вы ими злоупотребляете.

Не забудьте подписаться, если хотите увидеть больше советов/лучших практик для JavaScript/TypeScript.