Это Реакция.ленивый обратный вызов гарантированно будет выполнен только один раз?

#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. Если вы никогда не импортируете один из этих крючков, этого никогда не произойдет. Для этого вам не нужно писать никакой ручной логики.