WordPress金融網(wǎng)站seo課程排行榜
1. 組件通信
- 組件間的數(shù)據(jù)傳遞
1.1 父?jìng)髯?/h5>
步驟:
- 父組件傳遞數(shù)據(jù)——在子組件標(biāo)簽上綁定屬性
- 子組件接收數(shù)據(jù)——子組件通過props參數(shù)接收數(shù)據(jù)
function Son(props) {return <div>{props.value}</div>
}function App() {const value = '父組件傳給子組件的值'return (<div className="App"><Son value={value} /></div>);
}export default App;
-props說明:
function Son(props) {console.log('props', props)return <div>{props.value}</div>
}function App() {const value = '父組件傳給子組件的值'return (<div className="App"><Sonvalue={value}age={100}list={['a', 'b']}obj={{ key: 11 }}isTrue={false}clickButton={() => {console.log('click button')}}dom={<span>hello</span>}/></div>);
}export default App;
- 特色的prop —— children
function Son(props) {return <div>我是子組件 {props.children}</div>
}function App() {return (<div className="App"><Son><div>我就是那個(gè)特殊的prop</div></Son></div>);
}export default App;
1.2 子傳父
- 核心思路:子組件調(diào)用父組件的函數(shù)并傳遞參數(shù)
function Son(props) {return <button onClick={() => props.onUpdateMsg('子組件中的數(shù)據(jù),我要傳給父組件')}>click me</button>
}function App() {function getSonMsg(msg) {alert(msg)}return (<div className="App"><Son onUpdateMsg={getSonMsg} /></div>);
}export default App;
1.3 兄弟組件傳值 —— 狀態(tài)提升
- 核心:傳給共同的父組件,進(jìn)行數(shù)據(jù)傳遞(子傳父 + 父
姐姐:爸爸,你跟妹妹說我是她姐姐
爸爸:妹妹,你姐說你是她的妹妹
哈哈哈哈哈哈哈
import { useState } from 'react'
function BigSister(props) {return <button onClick={() => props.onUpdateMsg('爸爸,告訴妹妹我是她姐姐')}>click me</button>
}function SmallSister(props) {return <div>姐姐對(duì)妹妹說的:{props.value}</div>
}function App() {const [bigToSmallMsg, setBigToSmallMsg] = useState('');function getBigSisterMsg(msg) {setBigToSmallMsg(msg)}return (<div className="App"><BigSister onUpdateMsg={getBigSisterMsg} /><SmallSister value={bigToSmallMsg} /></div>);
}export default App;
1.4 跨層組件通信 —— context
import { createContext, useContext } from 'react'
// step 1
const MoneyContext = createContext()
function Father(props) {return <div>我是爸爸<Son /></div>
}function Son(props) {// step 3:消費(fèi)const money = useContext(MoneyContext)return <div>我是兒子 ------<span>這是我爺爺留給我的財(cái)產(chǎn):{money}</span></div>
}function App() {const money = 100000000return (// step 2: 提供<MoneyContext.Provider value={money}><div className="App">我是爺爺<Father /></div></MoneyContext.Provider>);
}export default App;
參考
黑馬程序員react教程