1- Храните в магазине только те данные, которые вам нужны
Это не означает, что вам нужно хранить все в своем магазине, потому что вы используете магазин. Позвольте мне привести несколько примеров, чтобы прояснить это;
Вы должны хранить их в своем магазине; валюты, страны, текущий пользователь… короче, любые статические данные, которые не нужно постоянно обновлять.
Вы не должны использовать магазин для; Любые данные, относящиеся к странице, например, допустим, у нас есть страница со списком пользователей. Нам не нужно хранить эти данные в магазине, потому что они все равно будут изменены или обновлены при следующем посещении страницы.
Кроме того, использование хранилища для чего-то, для чего вы не должны использовать хранилище, усложняет простой процесс. Добавляет дополнительный слой, которого вообще не должно быть.
2- Внедрите библиотеки в свои сервисы
Итак, я вижу множество проектов, которые выставляют зависимости для всего приложения. Возьмем, к примеру, Аксиос. Вы можете использовать Axios везде, и это будет работать отлично. Но что, если вам нужно перейти на другую библиотеку HTTP-запросов? Или что, если Axios выпустит новую основную версию и все изменит? В этом случае вам необходимо обновить каждое использование Axios в вашем приложении.
Вот что вы должны сделать вместо этого;
Оберните Axios в HttpService и предоставьте там некоторые стандартные методы, такие как get, post, patch… и т. д. И не используйте Axios напрямую где-либо еще, если вам это не нужно.
Вот пример HttpService.
3- Не впихивайте все в свой помощник.
Вспомогательные сервисы не должны быть мешаниной общих методов. Методы вспомогательных сервисов не должны содержать никакой бизнес-логики. Если ваш метод содержит бизнес-логику, вам, вероятно, следует разделить свой метод и использовать ту часть, которая содержит бизнес-логику, в другой связанной службе. Вспомогательные службы могут быть опасны и могут вызвать у вас головную боль, если вы ими злоупотребляете.
Не забудьте подписаться, если хотите увидеть больше советов/лучших практик для JavaScript/TypeScript.