React (props&&state)

最近在學React...看了一下文檔
這篇文章寫的挺詳細的:https://segmentfault.com/a/1190000012921279#articleHeader0
state:React 把組件看成是一個狀態(tài)機(State Machines)。通過與用戶的交互,實現(xiàn)不同狀態(tài),然后渲染 UI,讓用戶界面和數(shù)據(jù)保持一致。React 里,只需更新組件的 state,然后根據(jù)新的 state 重新渲染用戶界面(不要操作 DOM)。
props:state 和 props 主要的區(qū)別在于 props 是不可變的,而 state 可以根據(jù)與用戶交互來改變。這就是為什么有些容器組件需要定義 state 來更新和修改數(shù)據(jù)。 而子組件只能通過 props 來傳遞數(shù)據(jù)。
以下實例演示了如何在應用中組合使用 state 和 props 。我們可以在父組件中設置 state, 并通過在子組件上使用 props 將其傳遞到子組件上。在 render 函數(shù)中, 我們設置 name 和 site 來獲取父組件傳遞過來的數(shù)據(jù)。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
<script src="https://cdn.bootcss.com/react/16.4.0/umd/react.development.js"></script>
<script src="https://cdn.bootcss.com/react-dom/16.4.0/umd/react-dom.development.js"></script>
<script src="https://cdn.bootcss.com/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>

<div id="example"></div>
<script type="text/babel">


class WebSite extends React.Component{
    constructor() {
        super();
        this.state={
            name:'dbforreal',
            site:'www.baidu.com'
        }      
    }
    render(){
        return (
            <div>
                <Name name={this.state.name}/>
                <Link site={this.state.site}/>
            </div>
        );
    }  
}
class Name extends React.Component{
    render(){
        return (
            <h1>{this.props.name}</h1>
        );
    }
}
class Link extends React.Component{
    render(){
        return (
            <a href ={this.props.site}>
                {this.props.site}
            </a>
        );
    }
}

ReactDOM.render(
    <WebSite />,
    document.getElementById('example')
);
</script>

</body>
</html>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容