用一句概括React中的state和props

作者: a333661d6d6e | 来源:发表于2018-11-10 16:06 被阅读36次

    从一开始学习React或者React-Native就对 props和state有着很大的疑惑,它们之间究竟有什么区别?又该怎么使用它们呢?

    state的作用
    众所周知state是React中组件的一个对象.React把用户界面当做是状态机,想象它有不同的状态然后渲染这些状态,可以轻松让用户界面与数据保持一致。

    React中,更新组件的state,会导致重新渲染用户界面(不要操作DOM).简单来说就是用户界面会随着state变化而变化

    state是组件内部的状态,只能通过setState来改变,用来更新组件内部的数据

    this.setState({items: data});//items为刚开始定义的state变量,data为要赋给items的值
    

    如果items的值也为items,那么可以写成

    this.setState({items});//和this.setState({items:items})等价
    

    常用的通知React数据变化的方法是调用setState(data,callback).这个方法会合并data到this.state,并重新渲染组件.渲染完成后,调用可选的

    callback回调.大部分情况不需要提供callback,因为React会负责吧界面更新到最新状态.

    image.png

    props意为属性,只可父组件改变子组件的props,而子组件不能自更新。(组件内部的this.props属性是只读的,不能修改)
    props是子组件暴露给外部的公有接口。

    props一定来源于默认属性或者通过父组件传递而来,以下是这个写法:

    static propProps = {
            val:PropTypes.string.isRequired
    }
    static defaultProps = {
            val:0
    }//欢迎加入全栈开发交流圈一起学习交流抠裙:864305860
    

    Avatar拥有ProfilePic和ProfileLink的实例,拥有者就是给其它自口岸设置props的那个组件..更正式的说,如果

    组件Y在render()方法创建了组件X,那么Y就拥有X.

    以下给props和state做一个总结:

    props用于定义外部接口,state用于记录内部状态

    props的赋值在于外部世界使用组件,state的赋值在于组件内部

    组件不应该改变props的值,而state存在的目的就是让组件来修改的

    props:一般用于父组件向子组件通信,在组件之间通信使用。

    state:一般用于组件内部的状态维护,更新组建内部的数据,状态,更新子组件的props等。

    总结

    props是一个父组件传递给子组件的数据流,可以一直的被传递到子孙组件中。然而 state代表的是子组件自身的内部状态。从语义上讲,改变组件的状态,可能会导致dom结构的改变或者重新渲染。而props是父组件传递的参数,所以可以被用于初始化渲染和改变组件自身的状态,虽然大多数时候组件的状态是又外部事件触发改变的。我们需要知道的是,无论是state改变,还是父组件传递的 props改变,render方法都可能会被执行。

    用一句概括React中的state和props:

    props不变、states可变,所有的变化都来自setStates,所有的组件变化都是来自setStates这个方法。

    结语
    感谢您的观看,如有不足之处,欢迎批评指正。

    本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
    对web开发技术感兴趣的同学,欢迎加入Q群:864305860,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
    最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

    相关文章

      网友评论

        本文标题:用一句概括React中的state和props

        本文链接:https://www.haomeiwen.com/subject/vgkzxqtx.html