关于props和state以及redux中的state】的更多相关文章

React的数据模型分为共有数据和私有数据,共有数据可以在组件间进行传递,私有数据为当前组件私有.共有数据在React中使用props对象来调用,它包含标签所有的属性名称和属性值,props对象有三个特性,单向流动性.显示传递性和只读性.单向流动性是指React的数据只能由父组件传递到子组件,而不能由子组件传递到父组件:显示传递性是指必须明确地在子组件中通过属性赋值,数据才可以传递到子组件:只读性是指props数据是只读的,数据修改后并未改变原始的数据模型,而是会新生成一份数据模型,并将新的数据…
在使用React时,会经常需要处理state里边设置的初始值以达到我们的实际需求,比如从接口获取到列表数据后要赋值给定义的列表初始值,然后数据驱动view视图进而呈现在我们眼前,这种最简单的赋值方式实现起来也很简单,如下: this.setSate({ listData: res.data }) 其实VUE实现起来更简单,直接写成this.listData = res.data即可,这里不做过多vue的赘述. 那么在使用React时你有没有想过如果是给一个数组中的某一项重新赋值呢?如果给一个Ob…
用了几个月的redux,现在回过来总结一下. 刚开始用的时候遇到一个比较大的疑问,就是如何设计redux的store中的state树,这应该是我在使用redux中最大的一个疑问,阻挡了我前进的脚步,当时查阅了许多博客和官方文档,还询问了许多做react的同学,基本上讲的都不是很清楚,可能本身理解的就有问题或者是表达能力有限.我这里给大家用非常通俗易懂的方式说一说我的疑问,以及我是如何解决的. 当初主要的疑问是: 1.state树是按照页面划分 2.还是按照数据库中的表(users,events这…
所谓状态机,是一种抽象的数据模型,是“事物发展的趋势”,其原理是事件驱动.广泛地讲,世界万物都是状态机. 一.状态机是一种抽象的数据模型 在react中,props和state都可以用来传递数据.这里作一下区分. 1.props props用于组件间的数据传递.其本身只是一个属性,不是一个状态机. 从子组件的角度看,子组件无法擅自修改父组件通过属性传递的数据,因此具有单向数据流的特点. 2.state state用于设置组件本身的状态.state用于用户数据交互.事件监听. setState会调…
props可以看做是 property 的缩写的复数,可以翻译为属性,类似于HTML 标签的自定义属性.在大多数React教程里讲 state 和 props 主要的区别在于 props 是不可变的,而 state 可以根据与用户交互来改变.其实这种说法有问题.可以参考一篇文章<React中state与props介绍与比较> 组件中的props本质作用是一种父级向子级传递数据的方式.props是可以改变的,只是没有提供API可以在子组件里直接修改,我们可以在父组件里把要给子组件的属性值修改.…
一.State 1.什么是 state 一个组件的显示形态可以由数据状态和外部参数决定,其中,数据状态为 state,外部参数为 props 2.state 的使用 组件初始化时,通过 this.state 给组件设置一个初始的 state,在第一次 render 时就会用这个数据渲染组件 class ItemList extends React.Component { constructor() { super(); this.state = { data: '123' }; } render…
上周利用业余的时间看了看Redux,刚开始有点不适应,一下在有了Action.Reducer.Store和Middleware这么多新的概念. 经过一些了解之后,发现Redux的单向数据里的模式还是比较容易理解的,结合着Redux的单向数据流模型,很多概念就比较清晰了. 下面就按照自己的理解整理出了Redux中相关的内容,如果你也刚开始学习Redux,希望能给你一个直观的认识. Action/Reducer/Store 首先,先看看第一张图,图中展示了Redux的单向数据流,以及Action.R…
Action/Reducer/Store 首先,先看看第一张图,图中展示了Redux的单向数据流,以及Action.Reducer和Store这三个核心概念. 下面就围绕上图,非别介绍Action.Reducer和Store这三个概念. Action和Action Creator Action是一个对象,用来代表所有会引起状态(state)变化的行为(例如服务端的响应,页面上的用户操作). 假如我们要实现一个任务管理系统,那么添加任务的Action对象就会是下面的形式: { type: 'ADD…
我们使用两种数据来控制一个组件:props和state.props是在父组件中指定, 而且一经指定,在被指定的组件的生命周期中则不再改变. 对于需要改变的数据,我们需要使用state. 假如我们需要制作一段不停闪烁的文字.文字内容本身在组件创建时就已经指定好了,所以文字 内容应该是一个prop.而文字的显示或隐藏的状态(快速的显隐切换就产生了闪烁的效果) 则是随着时间变化的,因此这一状态应该写到state中. 代码如下: import React, { Component } from 'rea…
回顾:Redux: 类似于 Vuex 概念:store/reducer/action action:动作 {type,.....} 一定要有type 其他属性不做限制 reducer:通过计算产生state 公式:(state,action)=>newState store: 容器 getState() 获取所有状态 dispatch(action) dispatch里面可以跟对象和函数, -- 函数需要单独处理--中间件 subscribe(监听函数);-- watch 触发条件: 1.dis…