#reactjs #redux-toolkit #rtk-query
Вопрос:
Гарантируется React.lazy
ли, что обратный вызов будет выполнен только один раз?
Пример использования-введение конечных точек RTK и RTKQ, например:
const Component = React.lazy(() => {
injectApi(componentApi)
injectStore(componentStore)
return import('component-path')
}
Комментарии:
1. reactjs.org/docs/code-splitting.html#reactlazy > Это автоматически загрузит пакет, содержащий другой компонент, при первом отображении этого компонента.
2. Да, но гарантируется ли, что он не будет выполняться более одного раза, и безопасно ли обрабатывать дополнительную логику в этом обратном вызове?
Ответ №1:
По крайней мере, в части RTKQ вы, вероятно, просто переоцениваете это.
Следуйте инструкциям по разделению кода RTKQ: создайте один пустой api для всего и добавьте его в свой магазин с самого начала, а затем используйте injectEndpoints
в различных других файлах для добавления в него конечных точек. Из этих файлов экспортируйте крючки.
Когда вы импортируете эти крючки из файла, разделенного кодом, файл будет включен, а конечные точки будут введены в ваш api. Если вы никогда не импортируете один из этих крючков, этого никогда не произойдет. Для этого вам не нужно писать никакой ручной логики.