react 非父子组件传参方式

1.通过父组件当中间人方式,子传父再传子
2.通过发布订阅模式

obj={
list:[],
 sub(callback){
list.push(callback)
},
pub(){
list.foreach((callback)=>{
  callback()

})
}
}

obj.sub(()=>{
console.log(''')

})

obj.pub()

先发布后订阅

3.context通讯

父组件通过包裹
ThemeContext= react.createContext()
<ThemeContext.Provider value={{
theme: themes[themeIndex],
changeTheme: this.changeTheme
}}>

子组件

<ThemeContext.Consumer>
{({theme, changeTheme}) => <button onClick={changeTheme} style={{background: theme.background, color: theme.color}}> It's a button. }
</ThemeContext.Consumer>

posted @ 2022-04-06 15:05  木头小屋  阅读(135)  评论(0编辑  收藏  举报