Ui = f(data)

本来按照这个公式,前端开发应该是非常愉悦的。最近发现有一些复杂度是因为现有的工具造成的,导致上面这个公式并不成立。

  1. 如果 data 不是一个浏览器的数据,而是数据库里的数据。这个 Ui 是不能直接等于 f(data) 的,只能是 Ui = f(local_data)。这个 local data 就变成了一份需要手工维护的前端状态。
  2. 如果 data 不是一个组件内的数据,而是其他组件的数据。这个就是所谓的兄弟组件通信之类的问题。很大程度也是因为,在我 render 的时候,我拿不到我想要的数据,Ui = f(my_data)。
  3. 如果 data 不是一个我们希望 react 管理的数据(因为性能原因)。https://www.react-spring.io/ 这样的高性能动画库都是自己管理数据的。Animated Ui = f(animated_data)。在使用的时候也要在 react 管理的数据,和 react-spring 管理的数据之间实现同步。

react 状态管理远不远不是一个解决了的问题。我希望的解决方案是

  1. 可以像使用浏览器本地数据一样,渲染远程获取的数据
  2. render 的时候可以用我这个组件的数据,也可以用 query 去查询前端其他组件的数据
  3. 动画的 Ui 和 React Ui 都是从同一份状态渲染来的,只是两个 renderer 而已。

react全局状态管理_react 状态管理的复杂度来源相关推荐

  1. react 状态驱动_React状态:做最少的事情

    react 状态驱动 为什么国家要解决如此棘手的问题? (Why is state such a hard problem to tackle?) State is a very hard conce ...

  2. react全局状态管理_react状态管理redux

    Redux(上) 结合阮老师的技术博客,将自己吸收到的内容做了个整理: 曾经有人说过这样一句hua : 如果你不知道是否需要Redux,那就是不需要它. 从组建层面考虑,什么样子的需要redux:某个 ...

  3. flutter 局部状态和全局状态区别_Flutter状态管理

    Flutter状态管理 状态管理是声明式编程非常重要的一个概念,我们在前面介绍过Flutter是声明式编程的,也区分声明式编程和命令式编程的区别. 这里,我们就来系统的学习一下Flutter声明式编程 ...

  4. apollo配置中心的组件_如何使用Apollo的全新查询组件来管理本地状态

    apollo配置中心的组件 Note: This article deals with utilizing Apollo's brand new Query and Mutation componen ...

  5. Vue + Element UI 实现权限管理系统 前端篇(八):管理应用状态

    使用 Vuex 管理应用状态 1. 引入背景 像先前我们是有导航菜单栏收缩和展开功能的,但是因为组件封装的原因,隐藏按钮在头部组件,而导航菜单在导航菜单组件,这样就涉及到了组件收缩状态的共享问题.收缩 ...

  6. k8s的Pod状态和生命周期管理

    Pod状态和生命周期管理 一.什么是Pod? 二.Pod中如何管理多个容器? 三.使用Pod 四.Pod的持久性和终止 五.Pause容器 六.init容器 七.Pod的生命周期 (1)Pod pha ...

  7. 管理订单状态,该上状态机吗?轻量级状态机COLA StateMachine保姆级入门教程

    前言 在平常的后端项目开发中,状态机模式的使用其实没有大家想象中那么常见,笔者之前由于不在电商领域工作,很少在业务代码中用状态机来管理各种状态,一般都是手动get/set状态值.去年笔者进入了电商领域 ...

  8. Java使用cookie和session管理用户状态

    一个做移动端的,要做服务端的一些工作,没办法,工作还的继续,这就是生活,废话不说,总结一下这一天的东西,逆水行舟,努力,努力. Java什么是状态管理 一般我们会将浏览器与服务器之间多次的交互当作一个 ...

  9. 14.State-理解原理即可、Flink中状态的自动管理、无状态计算和有状态计算、状态分类、Managed State Raw State\Keyed StateOperator State

    14.State-理解原理即可 14.1.Flink中状态的自动管理 14.2.无状态计算和有状态计算 14.2.2.有状态计算,需要考虑历史值,如:sum 14.2.3.状态分类 14.2.4.Ma ...

最新文章

  1. jupyter notebok 调用本目录下的其他py文件
  2. 服务器重启后启动Docker命令
  3. SAP Authenticator apk下载
  4. java 子类的同名方法_java 父类子类有同名方法时如何调用的实现
  5. 生成 linq to sharepoint 对象模型sharepoint 母板页
  6. python编辑配置_Python环境安装及编辑器配置(一)
  7. python api框架 hook_python学习之hook钩子的原理和使用
  8. javaweb课程PSP(1)
  9. mysql备份命令_mysql命令行备份方法
  10. java 导出word文件,支持导出表格和图片
  11. 一阶微分方程解的存在定理
  12. 公众号openid能做用户识别_做公众号能不能转载别人文章?我的建议是...
  13. 2023年东南大学英语笔译考研上岸前辈备考经验指导
  14. 【Three.js入门】标准网格材质、置换贴图、粗糙度贴图、金属贴图、法线贴图
  15. android 圆圈扩大动画,Android实现3个圆圈的动画
  16. catboost 的实例应用附带特征重要度打印
  17. 什么是SQL注入攻击?
  18. 华东地区响应最快的DNS服务排名
  19. 世界各国GDP相关面板数据(1960-2019年)
  20. 彻底关闭windows Update服务

热门文章

  1. 数据结构与算法之KMP算法
  2. 99.999%,提升ElasticSearch稳定性的秘密
  3. 基于nginx-rtmp实现电视回看业务
  4. CentOS6.5下RabbitMQ安装
  5. Apache RocketMQ部署文档
  6. 使用crontab定时保存top信息到文件,并保存到数据库中
  7. Storm 06_Storm 容错机制
  8. Java程序员需要掌握的计算机底层知识(三):进程、线程、纤程、中断
  9. 【HTML+CSS】练习:百度首页模拟
  10. 听说版本会说话,你相信吗?