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 ...
随机推荐
- STM32 LSM6DSL 陀螺仪数据采集
/************************************************************************************ * STM32 LSM6DS ...
- [LeetCode&Python] Problem 682. Baseball Game
You're now a baseball game point recorder. Given a list of strings, each string can be one of the 4 ...
- test20181006 投票
题意 分析 考场30分 枚举大小为k的子集的算法终于用上了. 时间复杂度 \[O\left(\binom{n}{k} \cdot \binom {k}{\frac{k}{2}} \cdot k\rig ...
- signal信号
1.signal信号调试 http://hongjiang.info/shell-script-background-process-ignore-sigint/
- 一个简单的批量更新oracle 数据库中 最近的服务商名称的数据
有一个需求是这样的,我们需要更新数据库中的数据,数据时这样的 1.大约50万以上 2. 数据中有较多的重复数据 3. 需要将表中最近的代理商的名称赋值给行中的服务商名称 4. 代理商的名称可能有多个, ...
- 【appium】根据accessibility_id定位元素
如何获得AccessibilityId 可以通过UIAutomatorViewer或者Appium Inspector获得.Accessibility ID在Android上面就等同于contentD ...
- DataSet和DataTable有用的方法
每一个DataSet都是一个或多个DataTable 对象的集合(DataTable相当于数据库中的表),这些对象由数据行(DataRow).数据列(DataColumn).字段名(Column Na ...
- 远程连接linux服务器mysql
今天遇到一个问题 无法远程链接mysql Host 'XXX' is not allowed to connect to this MySQL server 解决方案/如何开启MySQ先解决第一个提 ...
- ubuntu 14.04 git clone 出现 fatal: Unable to find remote helper for 'https'
当你编译安装git时因为没有安装(lib)curl-devel所以导致git clone 和 git push 都会出现这个错误 如果你安装了(lib)curl-devel,然后重新编译安装git就没 ...
- SpringCloud统一配置之使用配置
配置的读取方式在上一篇文章中有提到. 取到值之后赋值给静态类里的静态变量. 因为SpringCloud项目启动的时候会把所有的api都执行一遍(相当蛋疼),所以这里直接就可以写一个方法进行赋值. 代码 ...