react 数据管理之state思想指南

react的数据管理库有不少,最常听到的可能是mobx redux altjs之类的,当然还有很多其他,可以自己搜索。

为什么需要数据管理库呢,因为react本身只是为了实现view的表现,而不是数据的管理。

而数据类库就是为了实现react的不能之数据管理。也就是model层的分区管理。这个model层你可以实现对后台数据的引入和输送到view层的展示,还有可以依靠数据的改变触发view层的展现的改变,从而实现前端视觉状态的改变和复杂展示、动态展示等,所以我们需要有一个数据类库如mobx来帮我们管理react下前端的数据管理,实现分别出来model层。

只要model层的数据改变,也就是我们在model层操作数据,如果这个数据关系到view层的展示,那么react view就会实现视觉状态的改变,从而实现动态性功能性的前端视觉展示,和我们之前用的jq有很大的不同,对前端的视觉改变不在是依靠dom的操作插入删除等操作,而是依靠对数据的管理来改变前端视觉的展示。数据的改变数据类库就会自动触发react view的视觉改变,这个我们前端的视觉展示操作改变的思想就是对数据的操作的改变。而react是专注view层的一个库,这个库有非常好的前端视觉改变操作性能,依靠其优秀的算法来实现视觉层的改变。这个良好的view视觉改变性能是react得到推崇的原因,其优越的视觉改变速度是原来dom操作无法实现的速度,至于react具体是怎么实现这么好的性能来改变前端视觉展示,我们不得而知,这个fc的研究成果,有强大研究动力的人可以自己去研究一下其内核和算法。

基本上现在的许多前端框架都是已经和原来的jq之类的直接操作dom的前端框架有很大的区别了,现在主要流行的且是大趋势的方法就是操作数据也就是变量的改变来达到控制view层的视觉展示改变。所以要有良好的前端能力需要对此有所深入掌握,也就是model层是数据池,这个数据池的内部变量的改变可以实现view的展现的改变。现在我们需要的能力的基本是能够搭建好view层和model层的桥梁,搭建好基本桥梁后,model层数据的改变能够符合逻辑思路和预期的视觉改变,搭建好基本的model与view的连接桥梁后,我们想要控制view层的改变主要是通过在model层改变数据操作数据来达到被改变后的数据自动触发view层视觉展示的改变。从而实现前端的一系列目的性的实现---前端动态界面的正确展现。

不管多复杂的数据操作,以react这个拥有优越性能的前端视觉展现能力的前端框架,我们就可以实现良好的视觉改变于人类肉眼所不能轻易所觉察出来的间隔展现切换,model里的数据改变快速触发了view 快速的视觉展现的切换,实现良好的前端界面动态控制,且能够有良好的性能体验,视觉改变的性能能达到用户预期的心理接受度。另外react框架主要流行的是单页应用的制作,而单页应用虽然初期加载量相对比较大,但是加载成功基本的js包后就可以实现拥有比原来dom操作更好的界面性能的体验,总体而言react的单页应用优势和优秀的view界面性能,可以实现良好的应用体验。

时间: 2024-10-14 06:02:32

react 数据管理之state思想指南的相关文章

React 中的函数式思想

函数式编程简要概念 函数式编程中一个核心概念之一就是纯函数,如果一个函数满足一下几个条件,就可以认为这个函数是纯函数了: 它是一个函数(废话): 当给定相同的输入(函数的参数)的时候,总是有相同的输出(返回值): 没有副作用: 不依赖于函数外部状态. 当一个函数满足以上条件的时候,就可以认为这个函数是纯函数了.举个栗子: // 非纯函数 let payload = 0; function addOne(number) { ++payload; return number + payload; }

React入门---属性(state)-7

state------>虚拟dom------>dom 这个过程是自动的,不需要触发其他事件来调用它. state中文理解:页面状态的的一个值,可以存储很多东西. 学习state的使用: 1.state先初始化,在React中,每一个类跟所有的面向对象的函数一样,都有一个构造函数叫constructor. 2.将state的初始化放在constructor()里面. export default class BodyIndex extends React.Component{ //将state

React组件的State

组件state必须能代表一个组件UI呈现的完整状态集,即组件的任何UI改变都可以从state的变化中反映出来:同时,state还必须代表一个组件UI呈现的最小状态集,即state中的所有状态都用于反映组件UI的变化,没有任何多余的状态,也不应该存在通过其他状态计算而来的中间状态. state vs 普通属性 首先,什么是普通属性? 我们的组件都是使用ES6的class定义的,所以组件的属性其实也就是class的属性(更确切的说法是class实例化对象的属性,但因为JavaScript本质上是没有

react数据管理

react的设计思想就是界面由数据驱动,公式:UI = f(data).UI代表最终渲染的界面,f表示的是一个函数,data就是数据.data可以来自于组件内部的state,也可以是props.就是下文中讲到的内容. 一.组件状态state 组件内的数据分为两种 state    组件内部数据,外部不可见 props  外部传入的数据 所以,判断一个数据应该放在哪里,用下面的原则: 1.如果数据由外部传入,放在 props 中: 2.如果是组件内部状态,是否这个状态更改应该立刻引发一次组件重新渲

【05】react 之 组件state

1.1.  状态理解 React的数据流:由父节点传递到子节点(由外到内传递),如果顶层组件某个prop改变了,React会向下传递,重新渲染所有使用过该属性的组件.除此之外React 组件内部还具有自己的状态,这些状态只能在组件内部修改.通过与用户的交互(点击),实现不同状态(显示.隐藏.数量增加...),然后渲染UI,让用户界面和数据保持一致.React中只需更新组件的state,然后根据新的 state 重新渲染用户界面. this.props  属性:由父节点传入到组件内部,只读,不可修

[React] Keep Application State in Sync with Browser History

Using pushState and passing route data via context allows our application to respond to route changes made from Link components, but using the back and forward buttons in the browser doesn’t update the application state as we would expect. In this le

React Native props & state

今天又敲了一丁点代码,看了一下props和state的用法 原本以为state只是一个状态,但是又阅读了一下原文,才知道state是一组状态,这些状态是开发者自己定义的,都统一在state这个大类底下,跟props一样都是 this.props.propertyName this.state.stateName 这种形式,props和state是控制组件的两种类型,props是开发者自定义的组件参数,state表达的是一种状态用于控制组件的内容 /** * Sample React Native

[React] Update Component State in React With Ramda Lenses

In this lesson, we'll refactor a React component to use Ramda lenses to update our component state. We'll create a lens to focus on the property we want to target and use over to apply the existing state value to a utility function and we'll get back

React中的state与props的再理解

props可以看做是 property 的缩写的复数,可以翻译为属性,类似于HTML 标签的自定义属性.在大多数React教程里讲 state 和 props 主要的区别在于 props 是不可变的,而 state 可以根据与用户交互来改变.其实这种说法有问题.可以参考一篇文章<React中state与props介绍与比较> 组件中的props本质作用是一种父级向子级传递数据的方式.props是可以改变的,只是没有提供API可以在子组件里直接修改,我们可以在父组件里把要给子组件的属性值修改.