Size: a a a

JavaScript.Ninja

2021 June 03

N

Nikita in JavaScript.Ninja
но будет ли селектор срабатывать каждый раз при изменении?
источник

N

Nikita in JavaScript.Ninja
ну допустим в селекторе я фильтрую массив, условно
источник

N

Nikita in JavaScript.Ninja
условие фильтрации не меняется
источник

N

Nikita in JavaScript.Ninja
state => state.entity.array.filter(someFilter)
источник

N

Nikita in JavaScript.Ninja
это при каждом ререндере сработает?
источник

DZ

D Z in JavaScript.Ninja
Да, но это будет вызываться при каждом изменения стейта
источник

N

Nikita in JavaScript.Ninja
понял, то что мне и надо
источник

N

Nikita in JavaScript.Ninja
спасибо
источник

DZ

D Z in JavaScript.Ninja
А так как на выходе новый массив, то и компонент будет ререндериться)
источник

N

Nikita in JavaScript.Ninja
в общем вопрос был в том, вызывается ли селектор заново каждый раз
источник

DZ

D Z in JavaScript.Ninja
Не, я, наверное, не яснов выразился, при любом изменении сторы, у вас будет ререндериться компонент
источник

N

Nikita in JavaScript.Ninja
то есть он не понимает, на что конкретно подписывается и следит теперь за всей сторой?
источник

РТ

Роман Татаринов... in JavaScript.Ninja
Там будет лежать мемоизированное значение. Он не будет ходить в стор повторно и выполнять фильтр
источник

РТ

Роман Татаринов... in JavaScript.Ninja
Пока не изменится часть стэйта значение не изменится
источник

N

Nikita in JavaScript.Ninja
интересно тогда как это реализовано. ибо с обычной функцией он следит только за тем полем стора, до которого ведёт селектор
источник

РТ

Роман Татаринов... in JavaScript.Ninja
Я думаю, что там кэширование. Ну то есть прям мемоизация происходит. И он проверяет, если значения на вход, которые уже были, то отдает результат без просчётов заново
источник

РТ

Роман Татаринов... in JavaScript.Ninja
Но все на уровне догадок) сам код я не смотрел
источник

N

Nikita in JavaScript.Ninja
я смотрел, но сейчас в баре и не помню) решил пофантазировать. пришло озарение, что это может немного уменьшить размер моего кода
источник

DZ

D Z in JavaScript.Ninja
При каждом изменения сторы выполняется селектор - функция внутри useSelector. Потом useSelector смотрит на результат и если он отличается от предыдущего, то ререндерит компонент.
источник

N

Nikita in JavaScript.Ninja
а, ну вроде то что нужно
источник