react資料流

來源:互聯網
上載者:User

1.react資料流以及組件間溝通

react是自上而下的單向資料流,從父節點傳遞到子節點(通過props);如果頂層的props改變,react會重新渲染所有子節點。

props:用於組件間狀態的傳遞,用於整個組件樹中傳遞資料和配置,在當前組件訪問props使用this.props;

state 指的是組件內部的狀態,只能從當前組件調用this.setState修改state值,一般更新子組件都是通過改變state值,更新新子組件的props值而得到更新。

組件溝通 父子組件溝通
父組件傳遞資料給子組件
通過傳遞props即可實現。

class Parent extends React.Component{    constructor(props){        super(props);        this.state = {            msg: 'haha'        }    }    componentDidMount(){        setTimeout(() => {            this.setState({                msg: 'xixi'            })        },1000)    }    render(){        return (            <Child msg = {this.state.msg} />        );    }}class Child extends React.Component {    constructor(props) {        super(props);    }    render(){        return <div>{this.props.msg}</div>    }}

如果父組件個子組件之間不止一個層級,那麼通過 …將父組件的資訊傳遞給更深層級的子組件。 子組件傳遞資料給父組件
子組件向父組件通訊同樣需要用props,父組件傳遞一個函數給子組件,子組件調用函數。

class Parent extends React.Component{    constructor(props){        super(props);        this.state = {            msg: 'haha'        }    }    passMsg(msg){        this.setState({            msg: msg        })    }    render(){        return <Child passMsg = {msg => this.passMsg(msg)}/>    }}class Child extends React.Component{    constructor(props) {        super(props)    }    componentDidMount(){        setTimeout(() => {            this.props.passMsg('xixi')        },1000)    }    render(){        return <div>子組件向父組件通訊</div>    }}

使用箭頭函數 將父組件的passMsg通過props傳遞給子組件,主要是箭頭函數保證了子組件調用函數的時候,函數內部的this仍然指向父組件。 對於兄弟組件之間的通訊
他們擁有共同的父組件,所以1先向父組件通訊,父組件再向2通訊,從而實現1和2之間的通訊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.