Проверяет понимание способов обмена данными между несвязанными компонентами в React-приложении.
В React данные обычно передаются сверху вниз через props. Когда компоненты не связаны напрямую (не имеют общего родителя), стандартный поток данных становится неудобным. Возникает необходимость в механизмах, которые позволяют компонентам обмениваться информацией без явной иерархии.
const DataContext = React.createContext();
function App() {
const [data, setData] = React.useState('');
return (
<DataContext.Provider value={{ data, setData }}>
<ComponentA />
<ComponentB />
</DataContext.Provider>
);
}
function ComponentA() {
const { setData } = React.useContext(DataContext);
return <button onClick={() => setData('Hello')}>Send</button>;
}
function ComponentB() {
const { data } = React.useContext(DataContext);
return <p>Received: {data}</p>;
}// store.js
import { createStore } from 'redux';
const reducer = (state = {}, action) => {
if (action.type === 'SET') return { ...state, data: action.payload };
return state;
};
export const store = createStore(reducer);
// ComponentA
store.dispatch({ type: 'SET', payload: 'Hello' });
// ComponentB
store.subscribe(() => console.log(store.getState().data));Выбор метода зависит от масштаба приложения и частоты обновлений. Начните с подъема состояния, переходите к Context при необходимости, и используйте Redux только когда состояние становится действительно сложным. Это обеспечит поддерживаемость и предсказуемость кода.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию