React (props&&state)

最近在学React...看了一下文档
这篇文章写的挺详细的:https://segmentfault.com/a/1190000012921279#articleHeader0
state:React 把组件看成是一个状态机(State Machines)。通过与用户的交互,实现不同状态,然后渲染 UI,让用户界面和数据保持一致。React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM)。
props:state 和 props 主要的区别在于 props 是不可变的,而 state 可以根据与用户交互来改变。这就是为什么有些容器组件需要定义 state 来更新和修改数据。 而子组件只能通过 props 来传递数据。
以下实例演示了如何在应用中组合使用 state 和 props 。我们可以在父组件中设置 state, 并通过在子组件上使用 props 将其传递到子组件上。在 render 函数中, 我们设置 name 和 site 来获取父组件传递过来的数据。

<!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>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。