react通讯

createContext解决了什么问题?

你需要把一个 prop层层传递给深层嵌套的子组件时, 就可以用createContex


js

代码解读

复制代码

const ThemeContext = createContext('light') function App() { return ( <ThemeContext.Provider value='dark'> <ToolBar/> </ThemeContext.Provider> ) } function ToolBar() { return <Button/> } function Button() { const theme = useContext(ThemeContext) return <button>{theme}</button> }

点击组件A, 修改组件b的颜色


js

代码解读

复制代码

import React, { useState, createContext, useContext, Children } from "react"; import "./App.css"; const colorContext = createContext(); function Color({ children }) { const [color, setColor] = useState("pink"); return ( <colorContext.Provider value={{color, setColor}}> {children} </colorContext.Provider> ); } function Txt() { const { color } = useContext(colorContext); return <div style={{ color }}>颜色{color}</div>; } function Btn() { const { setColor } = useContext(colorContext); return <> <button onClick={() => setColor('red')} >红色</button> <button onClick={() => setColor('blue')} >蓝色</button> </> } function App() { return ( <Color> <Txt /> <Btn /> </Color> ); } export default App;

React父组件如何与子组件通信?

父组件通过props向子组件传递数据和函数。子组件可以通过props获取到这些数据和函数。

子组件如何改变父组件的状态?


js

代码解读

复制代码

import React, { useState } from 'react'; function Parent() { const [count, setCount] = useState(0); const handleIncrement = () => { setCount(prevCount => prevCount + 1); } return ( <div> <p>Count: {count}</p> <Child onIncrement={handleIncrement} /> </div> ) } function Child({ onIncrement }) { return <button onClick={onIncrement}>Increment</button>; }

原文:https://juejin.cn/post/7481992008673558555

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值