当前位置: 首页 > news >正文

Reactive Programing与“响应式”

将Reactive Programing翻译为“响应式编程”,的确不好理解。什么是Reactive?Reactive被翻译为“反应”,其英文原意是“事物对变化信号的回应、反应”。我热了,空调自动开,这就是空调对我的Reaction,我和空调的关系就是Reactive的。而在过去,我热了空调无动于衷,这就不是Reactive的。

“我热了”是我的一种状态变化,我的属性“温度感受”变成“热”。在过去,这种状态的变化不能引起空调的Reaction,此时我和空调的关系是““非Reative”。现在空调主动去观察监听我的状态,或者我热了主动去按遥控器,让空调根据我的状态变化引起自身状态的变化,这就是从“非Reative”变成了“Reactive”。所以,如果空调不理我,就不是Reactive的;如果空调理我,我和空调就是Reactive的。

空调会对我的变化做出“回应、响应”,这就是“响应式”。这不是一种技术,而是一种思想,或者说一种范式。绑定两个数据对象,让一个数据对象随着另一个数据对象的变化而变化,而不是由程序员去控制。

Reactive Programing也是如此,过去我们定义a = b+c; a被赋值后就和b、c没有关系了,b、c的状态变化不会引起a的状态变化,所以这是“非Reactive”编程;而“Reactive”编程是一种绑定关系a:b+c,从此a的值就和b、c的值绑定了,b、c变化,a也变化。就像空调会随我的状态变化一样,a也随着b和c的状态,对b、c装状态变化做出“Reaction”。

如果我再声明d:a+1,那么bc变化引起a变化,a变化又引起d变化,我们可以这样一直“套娃”下去,直到最后一个z,使得bc的变化引起一连串变化,像波浪一样一直往外“流出去”。所以Reactive Programing又跟“流式编程”的思想重合了,很多时候Reactive Programing和流式编程表达的是一个意思。那么此时想一想,我先热了,空调会开;那空调先开,我也跟着热吗?这就是“双向数据绑定”。我们常用的Vue是双向Reactive的,而微信小程序的原生开发框架则是单向Reactive的。

所以,Reactive Programing的核心思想是一种“连锁反应”。一只蝴蝶振动翅膀,引起大洋彼岸的一场飓风;一个量子状态变化,纠缠的量子也跟着变化。因为a b c ... z之间是Reactive的,有一个开始变化,数据会像流一样传播下去。

如果你肚子咕咕叫,不用你说你对象马上去做饭,那你们就是“Reactive Couple”。

今天是七夕,希望各位都是“Reactive Couple”。

http://www.lryc.cn/news/419771.html

相关文章:

  • Pinterest:从 Druid 到 StarRocks,实现 6 倍成本效益比提升
  • 代码+视频,R语言VRPM绘制多种模型的彩色列线图
  • Python 设计模式之工厂函数模式
  • 数据赋能(171)——开发:数据挖掘——概述、关注焦点
  • L1 - OpenCompass 评测 InternLM-1.8B 实践
  • JS【详解】数据类型检测(含获取任意数据的数据类型的函数封装、typeof、检测是否为 null、检测是否为数组、检测是否为非数组/函数的对象)
  • OpenCV图像滤波(10)Laplacian函数的使用
  • docker系列11:Dockerfile入门
  • LVS(Linux virual server)详解
  • Session共享方法
  • Ubuntu 22.04 Docker安装笔记
  • 编程-设计模式 6:适配器模式
  • ERC721 概念解释
  • 数据结构(其五)--串
  • LeetCode Hot100 LRU缓存
  • GESP C++ 2024年06月一级真题卷
  • 在 Ubuntu Server 上配置静态 IP 地址
  • 数据结构——栈的讲解(超详细)
  • 三防平板助力MES系统,实现工厂移动式生产报工
  • WEB渗透Bypass篇-常规函数绕过
  • C++从入门到起飞之——string类的模拟实现 全方位剖析!
  • 数据库国产化大趋势下,还需要学习Oracle吗?
  • WebLogic
  • Aspose.Words.dll 插入模板表格,使用的是邮件合并MailMerge功能,数据源是DataTable或list对象,实例
  • 同时打开多个微信
  • MPU6050的STM32数据读取
  • 【微信小程序开发】——奶茶点餐小程序的制作(二)
  • Java 文件上传七牛云
  • 大语言模型生成无人系统(如机械臂、无人机等)可以执行的指令序列
  • 尚硅谷谷粒商城项目笔记——十、调试前端项目renren-fast-vue【电脑CPU:AMD】