All streams
Search
Write a publication
Pull to refresh

Comments 6

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

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

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

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

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

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

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

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

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

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

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

Получается три одинаковых вызова хука и изменение в одном из компонентов не последует обновлению в тех местах где есть обращение к ключу стораджа через этот хук?

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

Как только люди не пытаются возиться с реактом, лишь бы не использовать стейт менеджеры

Sign up to leave a comment.

Articles