赞
踩
- // ParentComponent.js
- import React from 'react';
- import ChildComponent from './ChildComponent';
-
- function ParentComponent() {
- const message = 'Hello from parent!';
-
- return (
- <div>
- <ChildComponent message={message} />
- </div>
- );
- }
-
- export default ParentComponent;
-
- // ChildComponent.js
- import React from 'react';
-
- function ChildComponent(props) {
- return (
- <div>
- <p>{props.message}</p>
- </div>
- );
- }
-
- 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 (
- <div>
- <ChildComponent onMessage={handleMessage} />
- <p>Message from child: {message}</p>
- </div>
- );
- }
-
- export default ParentComponent;
-
- // ChildComponent.js
- import React from 'react';
-
- function ChildComponent(props) {
- const sendMessage = () => {
- props.onMessage('Hello from child!');
- };
-
- return (
- <button onClick={sendMessage}>Send Message</button>
- );
- }
-
- export default ChildComponent;

- // App.js
- import React, { createContext, useContext } from 'react';
- import GrandParentComponent from './GrandParentComponent';
-
- const MessageContext = createContext();
-
- function App() {
- return (
- <MessageContext.Provider value={'Hello from App!'}>
- <GrandParentComponent />
- </MessageContext.Provider>
- );
- }
-
- export default App;
-
- // GrandParentComponent.js
- import React from 'react';
- import ParentComponent from './ParentComponent';
-
- function GrandParentComponent() {
- return (
- <div>
- <ParentComponent />
- </div>
- );
- }
-
- export default GrandParentComponent;
-
- // ParentComponent.js
- import React from 'react';
- import ChildComponent from './ChildComponent';
- import { MessageContext } from '../App';
-
- function ParentComponent() {
- const message = useContext(MessageContext);
- return (
- <div>
- <ChildComponent message={message} />
- </div>
- );
- }
-
- export default ParentComponent;
-
- // ChildComponent.js
- import React from 'react';
-
- function ChildComponent(props) {
- return (
- <div>
- <p>{props.message}</p>
- </div>
- );
- }
-
- 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 (
- <Provider store={store}>
- <ComponentA />
- </Provider>
- );
- }
-
- 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 (
- <div>
- <p>{message}</p>
- </div>
- );
- }
-
- 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 (
- <div>
- <p>{message}</p>
- </div>
- );
- }
-
- 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 (
- <div>
- <button onClick={triggerMethod}>Trigger Child Method</button>
- <ChildComponent ref={childRef} />
- </div>
- );
- }
-
- export default ParentComponent;
-
- // ChildComponent.js
- import React from 'react';
-
- class ChildComponent extends React.Component {
- childMethod = () => {
- console.log('Called from ParentComponent');
- };
-
- render() {
- return <div>Child Component</div>;
- }
- }
-
- 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 <div>Component C</div>;
- }
-
- 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 <div>Component D</div>;
- }
-
- export default ComponentD;

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。