// ParentComponent.js import React from 'react'; import ChildComponent from './ChildComponent'; function ParentComponent() { const message = 'Hello from parent!'; return ( ); } export default ParentComponent; // ChildComponent.js import React from 'react'; function ChildComponent(props) { return ( {props.message}
); } export default ChildComponent;
// ParentComponent.js import React, { useState } from 'react'; import ChildComponent from './ChildComponent'; function ParentComponent() { const [message, setMessage] = useState(''); const handleMessage = (msg) => { setMessage(msg); }; return ( Message from child: {message}
); } export default ParentComponent; // ChildComponent.js import React from 'react'; function ChildComponent(props) { const sendMessage = () => { props.onMessage('Hello from child!'); }; return ( ); } export default ChildComponent;
// App.js import React, { createContext, useContext } from 'react'; import GrandParentComponent from './GrandParentComponent'; const MessageContext = createContext(); function App() { return ( ); } export default App; // GrandParentComponent.js import React from 'react'; import ParentComponent from './ParentComponent'; function GrandParentComponent() { return ( ); } export default GrandParentComponent; // ParentComponent.js import React from 'react'; import ChildComponent from './ChildComponent'; import { MessageContext } from '../App'; function ParentComponent() { const message = useContext(MessageContext); return ( ); } export default ParentComponent; // ChildComponent.js import React from 'react'; function ChildComponent(props) { return ( {props.message}
); } export default ChildComponent;
// store.js import { createStore } from 'redux'; const initialState = { message: '', }; function rootReducer(state = initialState, action) { switch (action.type) { case 'SET_MESSAGE': return { ...state, message: action.payload }; default: return state; } } const store = createStore(rootReducer); export default store; // App.js import React from 'react'; import { Provider } from 'react-redux'; import store from './store'; import ComponentA from './ComponentA'; function App() { return ( ); } export default App; // ComponentA.js import React, { useEffect } from 'react'; import { useSelector, useDispatch } from 'react-redux'; function ComponentA() { const message = useSelector(state => state.message); const dispatch = useDispatch(); useEffect(() => { dispatch({ type: 'SET_MESSAGE', payload: 'Hello from ComponentA!' }); }, []); return ( {message}
); } export default ComponentA; // ComponentB.js import React, { useEffect } from 'react'; import { useSelector, useDispatch } from 'react-redux'; function ComponentB() { const message = useSelector(state => state.message); return ( {message}
); } export default ComponentB;
// ParentComponent.js import React, { useRef } from 'react'; import ChildComponent from './ChildComponent'; function ParentComponent() { const childRef = useRef(null); const triggerMethod = () => { childRef.current.childMethod(); }; return ( ); } export default ParentComponent; // ChildComponent.js import React from 'react'; class ChildComponent extends React.Component { childMethod = () => { console.log('Called from ParentComponent'); }; render() { return Child Component; } } export default ChildComponent;
// EventEmitter.js import Emitter from 'tiny-emitter/instance'; const eventEmitter = new Emitter(); export default eventEmitter; // ComponentC.js import React, { useEffect } from 'react'; import eventEmitter from './EventEmitter'; function ComponentC() { useEffect(() => { const handleEvent = (data) => { console.log('Received data:', data); }; eventEmitter.on('my-event', handleEvent); return () => { eventEmitter.off('my-event', handleEvent); }; }, []); return Component C; } export default ComponentC; // ComponentD.js import React, { useEffect } from 'react'; import eventEmitter from './EventEmitter'; function ComponentD() { useEffect(() => { eventEmitter.emit('my-event', 'Hello from ComponentD!'); }, []); return Component D; } export default ComponentD;