React组件通信--props
生活随笔
收集整理的這篇文章主要介紹了
React组件通信--props
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
React組件通信
1、props接收數據
//index.js import App from "./App";ReactDOM.render(<App name='傳遞數據' age={19}color={[1,2,3]}fn={()=>{console.log('函數')}}tag={<p>段落</p>}/>,document.getElementById("root") );第一種方式:函數組件props通過參數接收
//app.js function App(props) {function myClick(e) {console.log(props);}return (<div className="App"><button onClick={myClick}>按鈕</button></div>); } export default App;第二種方式:類組件通過this.props.直接訪問
class App extends React.Component {render() {return (<div><span>props: {this.props.name}</span></div>);} } export default App;特點:
2、父傳子
使用props:
//父組件 import Children from "./Children";class App extends React.Component {state = {data: "父組件state數據",};render() {return (<div><span>props: {this.props.age}</span><div style={{ color: "red", border: "1px solid #f00" }}>子組件:<Children data={this.state.data} /></div></div>);} } export default App; //子組件 import React from "react";class Children extends React.Component {render() {return (<div><h3> childrens </h3><p>數據:{this.props.data}</p></div>);} }export default Children;3、子傳父
利用回調函數,父組件提供回調,子組件調用
//父組件 import Children from "./Children"; class App extends React.Component {state = {data: "父組件state數據",data2: "",};getChildData = (val) => {console.log("val", val);this.setState({data2: val,});};render() {return (<div><span>props: {this.props.age}</span><div style={{ color: "red", border: "1px solid #f00" }}>子組件:<Children data={this.state.data} getChildData={this.getChildData} />子組件數據:{this.state.data2}</div></div>);} }export default App; //子組件 class Children extends React.Component {sendData = () => {this.props.getChildData("子組件傳遞數據");};render() {return (<div><h3> childrens </h3><p onClick={this.sendData}>數據:{this.props.data}</p></div>);} }export default Children;4、兄弟組件傳值
用父級做中間件,子傳父,父再傳子
//children1 import React from "react";class Children extends React.Component {sendData = () => {this.props.getChildData("子組件傳遞數據");};render() {return (<div><h3> childrens </h3><p onClick={this.sendData}>點擊children1</p>數據:{this.props.data}</div>);} }export default Children; //Children2 import React from "react"; class Children2 extends React.Component {render() {return (<div>顯示兄弟children組件的數據:{this.props.data}</div>);} }export default Children2; //App 父組件 import Children from "./Children"; import Children2 from "./Children2"; class App extends React.Component {state = {data: "父組件state數據",data2: "",};getChildData = (val) => {console.log("val", val);this.setState({data2: val,});};render() {return (<div><span>props: {this.props.age}</span><div style={{ color: "red", border: "1px solid #f00" }}>子組件:<Children data={this.state.data} getChildData={this.getChildData} />父組件顯示子組件數據:{this.state.data2}子組件2:<Children2 data={this.state.data2} /></div></div>);} }export default App;其實都是用了props
5.children屬性
- children屬性:表示組件標簽的子節點,當組件標簽有子節點時,props就會有該屬性。
- 與props屬性一樣,值可以是任意值(文本、dom、甚至函數)
6.props深入
總結
以上是生活随笔為你收集整理的React组件通信--props的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 烧烤的发源地在哪里?
- 下一篇: 母鸡为什么吃自己的蛋?