Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 5

Для "тщательно разработанных" выглядит странно. Отдельный remove выглядит избыточным, выставление undefined ведь делает то же самое.

Не понимаю почему в хранилище нельзя писать сразу синхронно, просто вернув обёртку над сеттером из стейта и сразу же ловить ошибку, зачем эффект?

Эффект нужен для другого - так как хранилище общее, а компонентов которым оно нужно может быть несколько, то нужно как-то узнавать об изменениях. Про это вообще думали?

это перевод, автор вам вряд ли ответит по делу) писалось не для дискуссий

Да, извиняюсь - как-то пропустил этот момент. К качеству перевода претензий нет.

Не хватает учёта нескольких вкладок бразуера.

Как будто слишком специфичный хук, чтобы использовать именно для session storage и local storage и ни для чего другого.

А что, если я хочу на сервере иметь какое-то хранилище и синькать его?

Тут как будто бы напрашивается более абстрактный интерфейс для хранилища + работа с асинхронщиной. А сериализацию/десериализацию поместить в другое место и к примеру использовать только в local storage и session storage.

Второй момент: что если я захочу использовать хук в 2 независимых компонентах, и при этом у меня будет один ключ? Тут мы потеряем реактивность, если обновим в одном компоненте. А это, как по мне, очень важная штука.

Вообще всё уже придумано по сути: useSyncExternalStore. А на него уже можно какие угодно абстракции накручивать.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации