Flux、Atomic、Proxy 不同心智模型状态管理库的比较和原理

文章目录

  • Flux
    • 代表库
    • 源码解析
  • Atomic
    • 代表库
    • 源码解析
  • Proxy
    • 代表库
    • 源码解析

Flux

  • 单向数据流和状态不可变性:Flux 架构强调单向数据流,这意味着应用中的数据只能按照一个方向流动。组件触发 Actions,Actions 被 Dispatcher 处理,然后更新 Store 中的状态,最后 Store 的变化反馈到视图组件
  • 在 Flux 架构中,Dispatcher 是管理所有 Actions 分发的中心。每个 Action 在到达 Store 之前必须通过 Dispatcher。这种方式使状态变化更加可预测(Vuex mutation 也是参考了这种方式)
  • 状态定义心智模型是先定义大的 store(即自上而下)
  • 是一个外部 store,然后通过比如 hook 将外部世界连接到 React 世界

代表库

  • Redux、Zustand、Vuex
    • Jotai 在日语中是“国家”的意思。 Zustand 在德语中是“国家”的意思

源码解析

Redux
Vuex

Atomic

  • 在基于原子操作的状态管理方案中,状态被划分为多个独立的、不可分割的单元(原子)。每个原子代表应用状态的一个最小部分
  • 状态定义心智模型是由原子组成(即自下而上),由原始原子组成并允许将它们组合在一起,组件可以订阅并更新这些原子,而不需要关心全局状态树的其他部分
  • 原子不是创建多个上下文,而是共享一个大上下文
  • 和 Flux 模型区别在单向数据流和状态配置方面

代表库

  • jotai、Recoil、Hox、Pinia

源码解析

Hox
Pinia

Proxy

  • 操作符合人类思维:通过使用 JavaScript 类似 Proxy 特性来创建可变的状态树。这允许开发者以非常直观和自然的方式操作状态,就像操作普通的 JavaScript 对象一样。状态的变化会自动触发组件的重新渲染
  • 心智模型减少了状态不可变性带来的复杂性和样板代码,使状态管理更加简单直接。通过类似 Proxy 的方式实现了响应式更新,具有更细粒度的更新
  • 和 Flux 模型区别在状态不可变性

代表库

  • Valtio、Mobx

源码解析

待续…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/28722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF 深入理解二、布局

布局与控件 常用得布局属性 HorizontalAlignment:用于设置元素的水平位置VerticalAlignment: 用于设置元素的垂直位置Margin: 指定元素与容器的边距Height: 指定元素的高度Width: 指定元素的宽度WinHeight/winWidth:指定元素的最小高度和宽度MaxHeight/MaxWidth: 指定元素的最…

Python笔记 - 正则表达式

正则表达式(Regular Expression,简称regex)是一种强大的工具,用于匹配字符串模式。在Python中,正则表达式通过re模块提供。本文将带你深入了解Python中的正则表达式,从基础概念到高级用法。 1. 什么是正则…

压缩映射定理证明

收缩映射定理(又称Banach不动点定理)是一个重要的结果,特别是在分析和应用数学中。 定理(收缩映射定理):假设是一个从度量空间 (X,d) 到自身的函数,如果 是一个收缩映射,即存在常数 …

华为---VLAN-配置Eth-Trunk链路聚合(三)

6.3 配置Eth-Trunk链路聚合 6.3.1 原理概述 在没有使用Eth-Trunk前,百兆以太网的双绞线在两个互连的网络设备间的带宽仅为100Mbit/s。若想达到更高的数据传输速率,则需要更换传输媒介,使用千兆光纤或升级成为千兆以太网。这样的解决方案成本…

GenICam标准(五)

系列文章目录 GenICam标准(一) GenICam标准(二) GenICam标准(三) GenICam标准(四) GenICam标准(五) GenICam标准(六) 文章目录 系列文…

sklearn、tensorflow、keras区别与联系--九五小庞

1.sklearn库 sklearn是一个功能强大的Python机器学习库。 sklearn库提供了多种常用的机器学习算法,包括回归、分类、聚类和降维等,适用于那些希望通过预制的算法快速实现原型设计和数据分析的开发者和研究人员。sklearn几乎涵盖了所有常见的机器学习模…

【Stable Diffusion教程】AI绘画工具SD如何安装使用?三种方法带你轻松上手!(附安装包和云端部署教程)

大家好,我是向阳 AI绘画专业工具Stable Diffusion在哪里用怎么安装?这一期给大家介绍三种使用SD的方法,无论你有没有专业显卡都能轻松上手SD哦~ 一、SD本地部署秋葉安装包安装方法 如果你有进一步的需求,想要学习SD…

丘钛微注册陷入“停滞”IPO中止:营收净利润连年下滑,毛利率骤降

《港湾商业观察》施子夫 王璐 从2021年6月末算起,在冲刺创业板这条道路上,昆山丘钛微电子科技股份有限公司(以下简称,丘钛微)已经耗时了三年。 实际上在三年中,丘钛微早在2022年8月17日就首发过会&#…

autosar RTE模块功能介绍

在现代汽车电子系统的开发中,AUTOSAR(汽车开放系统架构)扮演着至关重要的角色。而 RTE(Runtime Environment,运行时环境)作为 AUTOSAR 虚拟功能总线接口,具有极其关键的含义和重要性。 RTE 可以被理解为连接软件组件的桥梁和通道。在 AUTOSAR 架构中,各个软件组件通过 …

Postgis中查找距离某条记录坐标100米内的数据

前提 表tablename带有空间字段geom sql语句 #使用 WITH 子查询 target_geom 获取 objectid1 的几何字段 geom。#主查询中使用 ST_DWithin 函数查找距离目标几何字段 100 米内的所有记录(除 objectid1 本身)。#因为坐标系为 4326,需要将100…

52.Python-web框架-Django - 多语言编译-fuzzy错误

目录 1.起因 2.原因 3.解决方法 3.1手动移除fuzzy标记 3.2重新生成po文件,并检查是否还存在fuzzy标记 3.3重新编译生成mo文件 1.起因 在Django的国际化和本地化过程中,当你发现某些字段仅显示msgid,而不显示msgstr时,可能是…

终极Python备忘单:日常任务的实用Python

本文是一篇节选翻译,原文: Ultimate Python Cheat Sheet: Practical Python For Everyday Tasks 选取了原文中最常见的python操作,对于数据库交互,科学计算等相对领域化的内容没有选取,有需要的可以直接读原文. 如需要PDF方便查…

EMERSON DELTAV KJ2231X1-EA1 SIS 继电器模块

EMERSON DELTAV KJ2231X1-EA1 SIS 继电器模块 工业网络环境中的OPC UA 艾默生(Emerson)是一家全球性的技术和软件公司,为全球各主要行业提供创新解决方案。通过其领先的自动化产品组合,包括其在AspenTech的多数股权,…

燃气守护神:燃气管网安全运行监测解决方案

在这个智能科技日新月异的时代,燃气安全却时有发生,严重危害人们的生命财产安全,因此旭华智能根据相关政策要求并结合自身优势,打造了一套燃气管网安全运行监测解决方案,他犹如一位“燃气守护神”,悄然守护…

计算机组成原理之存储器

文章目录 存储器概述存储器的分类情况按照存储器在系统中的作用分类按存储介质分类按存取方式分类 主存储器的技术指标 存储器概述 程序的局部性原理(构成多级存储系统的依据):在某一个时间段你频繁访问某一局部的存储器地址空间,…

綦江蜘蛛池四川官网下载

baidu搜索:如何联系八爪鱼SEO? baidu搜索:如何联系八爪鱼SEO? baidu搜索:如何联系八爪鱼SEO? CCSEO蜘蛛统计开发思路一般包括以下几个步骤: 定义需求:明确统计蜘蛛访问数据的目标和要求,例如需要获取哪些信息,统计的精度和频率等。 确定数…

Python数据分析与机器学习在金融风控中的应用

📑引言 金融风控是金融机构确保其业务健康运行、减少损失的重要手段。随着大数据和人工智能技术的发展,利用Python进行数据分析和机器学习可以为金融风控提供强有力的支持。本文将探讨Python在金融风控中的应用,详细介绍如何利用Python进行数…

重生之 SpringBoot3 入门保姆级学习(18、事件驱动开发解耦合)

重生之 SpringBoot3 入门保姆级学习(18、事件驱动开发解耦合) 5、SpringBoot3 核心5.1 原始开发5.2 事件驱动开发 5、SpringBoot3 核心 5.1 原始开发 LoginController package com.zhong.bootcenter.controller;import com.zhong.bootcenter.service.A…

爬虫初学篇——看完这些还怕自己入门不了?

初次学习爬虫,知识笔记小分享 学scrapy框架可看:孤寒者博主的【Python爬虫必备—>Scrapy框架快速入门篇——上】 目录🌟 一、🍉基础知识二、🍉http协议:三、🍉解析网页(1) xpath的用…

基于单片机的无线遥控自动翻书机械臂设计

摘 要: 本设备的重点控制部件为单片机,充分实现了其自动化的目的。相关研究表明,它操作简单便捷,使残疾人在翻书时提供了较大的便利,使用价值性极高,具有很大的发展空间。 关键词: 机械臂&…