Питання на співбесіді з керування станом (Middle) з відповідями
75 запитань для співбесіди з теми Керування станом (Middle) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Яким буде
countпісля одного кліку, якщо початкове значення 0? - 2.Як скинути стан компонента форми під час зміни вибраного користувача?
- 3.Чому зберігати копію пропа в стані може бути помилкою?
- 4.Як передати
dispatchзuseReducerглибоко в дерево без prop drilling? - 5.Навіщо потрібен третій аргумент
initуuseReducer(reducer, arg, init)? - 6.Чому всі споживачі контексту перемальовуються при кожному рендері провайдера?
- 7.Компонент використовує лише
themeз великогоAppContext, але перемальовується при кожній зміні кошика. Що допоможе? - 8.Чому
React.memoне допомагає компоненту, який викликаєuseContext(CartContext)? - 9.Чи є Context бібліотекою керування станом?
- 10.Що буде з вкладеними провайдерами одного контексту?
- 11.Коли краще покласти значення в Context, а не передавати його явно через пропси?
- 12.Що не так із цим case reducer?
- 13.Які дії надсилає
createAsyncThunk('users/fetch', fn)? - 14.Чому цей селектор перемальовує компонент при кожній надісланій дії?
- 15.Для чого потрібен
extraReducersуcreateSlice? - 16.Як типізувати
useSelectorіuseDispatchу TypeScript-проєкті? - 17.Що дає нормалізований стан (
{ ids, entities })? - 18.Що перевіряє
configureStoreу режимі розробки? - 19.Чи варто зберігати стан полів форми (кожне натискання клавіші) в Redux?
- 20.Чому цей компонент перемальовується при будь-якій зміні стору?
- 21.Чому селектор, що повертає новий об'єкт, спричиняє зайві ререндери (або нескінченний цикл у v5)?
- 22.Як прочитати чи оновити стор Zustand поза React-компонентами (наприклад, в API-хелпері)?
- 23.Як
setу Zustand обробляє вкладені об'єкти? - 24.Як зазвичай організовують великий стор Zustand?
- 25.Чому стор із
persistможе спричинити hydration mismatch у SSR-застосунках? - 26.Чим
staleTimeвідрізняється відgcTime? - 27.Чим
isPendingвідрізняється відisFetching? - 28.Як оновити список після того, як
useMutationстворив елемент? - 29.Які запити зачіпає
invalidateQueries({ queryKey: ['todos'] })? - 30.Як запустити запит лише після того, як інший повернув
user.id? - 31.Як під час пагінації показувати попередню сторінку, поки вантажиться наступна?
- 32.Що TanStack Query робить з невдалим запитом за замовчуванням?
- 33.Чому кожна змінна, яку використовує
queryFn, має входити вqueryKey? - 34.Як змусити мутацію RTK Query перезапитати список постів?
- 35.Коли RTK Query видаляє невикористані дані з кешу?
- 36.Як пропустити запит RTK Query, поки аргумент недоступний?
- 37.Як RTK Query уникає дубльованих запитів, коли 3 компоненти викликають
useGetUserQuery(1)? - 38.Що робить опція
refetchOnMountOrArgChangeу RTK Query? - 39.Коли SWR за замовчуванням автоматично перевіряє дані повторно?
- 40.Як завантажувати дані в SWR лише за виконання умови?
- 41.Що робить
mutate(key)зuseSWRConfig? - 42.Чому два компоненти з одним ключем SWR роблять лише один запит?
- 43.Як задати
fetcherі опції за замовчуванням для всіх хуків SWR? - 44.Як компонент читає дані, які повернув
loaderйого маршруту? - 45.Що відбувається після завершення
actionу React Router? - 46.Як показати стан очікування під час навігації чи надсилання форми в React Router?
- 47.Коли варто використовувати
useFetcherзамість<Form>? - 48.Як перенаправити з
actionпісля створення елемента? - 49.Серверні дані лежать у TanStack Query. Що зазвичай лишається для глобального клієнтського стору?
- 50.Як RTK Query співвідноситься з TanStack Query?
- 51.Для чого потрібен колбек
prepareу редʼюсеріcreateSlice? - 52.Як обробити стан
pendingбагатьох thunk'ів одним case у слайсі? - 53.Чи варто зберігати
cartTotalу Redux-стані поруч зitems? - 54.Як пропустити thunk, якщо дані вже завантажено чи вони завантажуються?
- 55.Як компоненту отримати результат thunk'а чи спіймати його помилку?
- 56.Як додати ендпоінти RTK Query з ліниво завантажуваної фічі?
- 57.Як перезапитувати запит RTK Query кожні 30 секунд, поки компонент змонтований?
- 58.Як зробити, щоб компонент перерендерювався лише за зміни одного поста із закешованого списку?
- 59.Що робить другий аргумент
trueуset(newState, true)у Zustand? - 60.Навіщо деякі команди групують дії Zustand у вкладений об'єкт
actions? - 61.Чим
initialDataвідрізняється відplaceholderDataу TanStack Query? - 62.Що дає помічник
queryOptions? - 63.Як опитувати запит кожні 10 секунд у TanStack Query?
- 64.Чим
mutateAsyncвідрізняється відmutate? - 65.Як паралельно завантажити динамічну кількість запитів (наприклад, по одному на вибраний id)?
- 66.Як зробити відкриття детальної сторінки миттєвим?
- 67.Який хук SWR реалізує пагінацію «завантажити ще»?
- 68.Як почати запит SWR до рендера компонента (наприклад, під час наведення)?
- 69.Що робить
keepPreviousData: trueу SWR за зміни ключа (наприклад, нового пошукового запиту)? - 70.Що відбувається, коли loader у React Router кидає помилку?
- 71.Що таке
clientLoaderу framework mode React Router? - 72.Навіщо оновлювати search-параметри з
{ replace: true }, поки користувач вводить фільтр? - 73.Чим відрізняються оптимістичні й песимістичні оновлення?
- 74.Як бейдж у шапці може показувати всі мутації «додати в кошик», що очікують, з інших компонентів?
- 75.Як вбудувати WebSocket-потік цін у кеш SWR?