react 中state与props
react 中state与props
1.state与props
- props是只读属性,只有在组件被实例化的时候可以赋值,之后的任何时候都无法改变该值。如果试图修改该值时,控制台会报错 only read。
 - state与props正好相反,state中保存可变的值。通过this.setState()方法修改对应的值。使用state必须通过es6继承React.Component 类(官方推荐写法),并在构造函数内进行初始化。
 
export default class BoubleBind extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            textVal: ''
        }
    }
}
具体参考官方详解。
1.1 react state 与redux state
react 的state是react自己管理组件状态的工具,适用于该组件管理自己这一层级的状态,通过继承React.Component 类,在构造函数constructor中进行初始化,在各自事件中通过setState方法更新state值。
state的值只能在本组件内通过setState方法修改,state向下组件传递时,作为子组件的props,props为只读属性,子组件不能直接更新该值。父组件修改state的值会影响(反映/更新)到子组件,子组件将执行render方法。 
子组件如果需要更新父组件的state值,只能通过props.callback调用父组件的方法,在父组件方法中执行setState方法更新state值,父组件更新state值,会反映到子组件上。
当组件层级比较多的时候,通过回调的方式更新父组件state来改变各级响应,这种方式写起来要经过多次传递,比较容易写错,这个时候,就可以考虑使用redux进行通信。redux可以理解为一个全局的状态管理工具,主要用于组件之间相互通信,尤其是没有关联关系组件之间的通信。
react 中state与props的更多相关文章
- React中state与props介绍与比较
		
一.state 1.state的作用 state是React中组件的一个对象.React把用户界面当做是状态机,想象它有不同的状态然后渲染这些状态,可以轻松让用户界面与数据保持一致. React中,更 ...
 - 【React自制全家桶】四、React中state与props的分析与比较
		
一.state 1.state的作用 state是React中组件的一个对象.React把用户界面当做是状态机,想象它有不同的状态然后渲染这些状态,可以轻松让用户界面与数据保持一致. React中,更 ...
 - React中state和props分别是什么?
		
整理一下React中关于state和props的知识点. 在任何应用中,数据都是必不可少的.我们需要直接的改变页面上一块的区域来使得视图的刷新,或者间接地改变其他地方的数据.React的数据是自顶向下 ...
 - react --- React中state和props分别是什么?
		
props React的核心思想就是组件化思想,页面会被切分成一些独立的.可复用的组件. 组件从概念上看就是一个函数,可以接受一个参数作为输入值,这个参数就是props,所以可以把props理解为从外 ...
 - React中state和props的区别
		
props和state都是用于描述component状态的,并且这个状态应该是与显示相关的. State 如果component的某些状态需要被改变,并且会影响到component的render,那么 ...
 - React & update state with props & Object.assign
		
React & update state with props & Object.assign Object.assign({}, oldObj, newObj) https://re ...
 - React中的this.props.children
		
React this.props.children this.props对象的属性与组件的属性一一对应,但是有一个例外,就是this.props.children属性.它表示组件的所有子节点. var ...
 - react中withRouter解决props返回为空
		
利用 react + antd 框架书写导航栏时,遇到了几个坑,分别是一级菜单和二级菜单在点击的情况下,高亮没有任何问题,但是再点击浏览器返回按钮时,却就乱套了. 1. 二级菜单中,我们可以通过 pr ...
 - react中state与setstate的使用
		
我们可以利用state来定义一些变量的初始值 //放在construcor里 this.state = { list: [1, 2, 3] } 要更改state里的值,注意要遵循react里immut ...
 
随机推荐
- dubbo监控工具
			
现在企业使用dubbo技术太普遍,所以dubbo的监控工具也应运而生,而且还很稳定,他就是一个web项目, 部署起来非常简单,下载个项目war包(dubbo-admin-2.5.4-SNAPSHOT. ...
 - python3获取当前目录和上级目录
			
d = path.dirname(__file__) #返回当前文件所在的目录 # __file__ 为当前文件 获得某个路径的父级目录: parent_path = os.path.dirname( ...
 - The Suspects 并查集
			
Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized ...
 - centos7 使用mount 挂载window10 (超简单)
			
一直使用vmware tools 挂载,发现好多问题,折腾了大半天放弃了,现在使用mount挂载,发现简单多了 一丶首先添加你需要共享的Windows文件夹,右键 记得要选择 Everyone 和一个 ...
 - jQuery--- .hasOwnProperty 用法
			
☆ obj.hasOwnProperty('prop'): 是用来判断一个对象是否有你给出名称的属性或对象.不过需要注意的是, 此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个 ...
 - js操作cookie总结 及乱码
			
涉及到cookie的 setPath问题: https://blog.csdn.net/damys/article/details/49737905 cookie注解:public voic getx ...
 - 好使-利用python 下paramiko模块无密码登录
			
[root@salt-minion02 paramiko]# vim baoleiji4.py # -*- coding:utf-8 -*-import paramikoprivate_key = p ...
 - calc()语法
			
什么是calc()? 学习calc()之前,我们有必要先知道calc()是什么?只有知道了他是个什么东东?在实际运用中更好的使用他. calc()从字面我们可以把他理解为一个函数function.其实 ...
 - vulcanjs 开源工具方便快速开发react graphql meteor 应用
			
vulcan 开源工具方便快速开发react graphql meteor 应用 操作环境mac os 安装 meteor 安装(此安装有点慢,可以通过正确上网解决) curl https://ins ...
 - linux ssh公钥免密码登录
			
ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 一.SSH公钥登录原理 在平时工作中我们经常要远程登录服务器,这就要用到SSH ...