iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >react中flux是什么意思
  • 506
分享到

react中flux是什么意思

2024-04-02 19:04:59 506人浏览 八月长安
摘要

React中flux是什么意思,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在react中,flux是一个公共状态管理方案,是

React中flux是什么意思,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在react中,flux是一个公共状态管理方案,是用来构建客户端WEB应用的应用架构,利用数据的单向流动的形式对公共状态进行管理。

教程操作环境:windows7系统、react17.0.1版、Dell G3电脑。

什么是flux

flux 是 react 中的类似于 Vuex 的公共状态管理方案,它是 Facebook 官方给出的用来构建客户端Web应用的应用架构,利用数据的单向流动的形式对公共状态进行管理。

它更像一个模式而不是一个正式的框架开发者不需要太多的新代码就可以快速的上手Flux。

使用 cnpm i flux -S 的方式进行安装。

flux的组成

  • View:视图层

  • Action:视图发出的消息

  • Dispatcher:派发者,用来接收Action,执行回调函数

  • Store:数据层,存放状态,一旦发生改动,

flux的工作流程

react中flux是什么意思
flux的工作流程

flux 在进行数据更新时,会经历以下几步:

  1. 用户与 View 层交互,触发 Action

  2. Action 使用 dispatcher.dispatch 将Action自己的状态发送给dispatcher

  3. dispatcher 通过reGISter注册事件,再通过Action传入的类型来触发对应的 Store 回调进行更新

  4. Store 里进行相应的数据更新,并触发 View 层事件使试图也同步更新

  5. View层 收到信号进行更新

用代码的形式详细展开:

1、用户与 View 层交互,触发 Action

组件中:

<button onClick = {this.handler.bind(this)}>更新数据</button>

2、Action 使用 dispatcher.dispatch 将Action自己的状态发送给dispatcher

组件中:

// 步骤1 事件的回调函数
handler(){
    // action是一个描述,定义一个独特的常量,用来描述你的数据更改的方式。
    let action = {
        type:"NUM_ADD"
    };
    dispatcher.dispatch(action)
}

3、dispatcher 通过 dispatcher.register 注册事件,再通过Action传入的类型来触发对应的 Store 回调进行更新

Dispatcher构造函数依赖的flux需要单独下载:cnpm i flux -S

dispatcher 文件中:

import {Dispatcher} from 'flux'
import store from './index'
const dispatcher = new Dispatcher();

// register方法注册事件,通过action传入的类型来触发对应的 Store 回调进行更新
dispatcher.register((action)=>{
    switch(action.type){
        case "NUM_ADD": 
            
            store.handleAdd();
            break;
        case "Num_REDUCE":
            store.handleReduce()
            break;
    }
})

export default dispatcher;

4、Store 里进行相应的数据更新,并触发 View 层事件使试图也同步更新

事件订阅对象的封装:Observer事件机制封装

store文件中:

import observer from '../observer'
let store = Object.assign(observer,{
    state:{
        n:10
    },
    getState(){
        return this.state;
    },

    // store 中的action对应的处理方法,更新store的数据,并触发更新视图的方法
    handleAdd(){
        this.state.n ++;
        this.$emit("update")
    },
})


export default store;

5、View层 收到信号进行更新

constructor 里用 $on 做事件订阅,并定义一个做状态更新的方法作为回调:

组件中:

// ...

// 在这里进行事件订阅,以让视图得到更新
constructor(){
    super();
    this.state = store.getState();
    store.$on("update",this.handleUpdate.bind(this))
}

// ...

// 事件订阅的回调,更新视图方法
handleUpdate(){
    this.setState(store.getState());
}

至此,在第4步中触发的方法在此执行,数据就得到了更新。一个完整的flux体系更新数据的流程就完成了。

flux的缺点

  • 频繁的引入 store

  • UI组件和容器组件的拆分过于复杂

  • 无法对多个store进行管理

  • 每个需更新视图的组件都需要进行更新函数的绑定

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网node.js频道,感谢您对编程网的支持。

--结束END--

本文标题: react中flux是什么意思

本文链接: https://www.lsjlt.com/news/87094.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • react中flux是什么意思
    react中flux是什么意思,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在react中,flux是一个公共状态管理方案,是...
    99+
    2024-04-02
  • react中的flux是什么
    本篇内容主要讲解“react中的flux是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“react中的flux是什么”吧! re...
    99+
    2024-04-02
  • react ve是什么意思
    本教程操作环境:Windows10系统、react-ve 0.1.12版、Dell G3电脑。react ve是什么意思?react-ve一个让你快速搭建react开发环境的脚手架优化项代码丑化压缩代码分割(code-splitting) ...
    99+
    2023-05-14
    React
  • react什么意思
    这篇文章给大家分享的是有关react什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。React 背景知识  React 是一个用于构建用户界面的 JavaScript 库,...
    99+
    2024-04-02
  • React中的任务饥饿行为是什么意思
    本篇内容主要讲解“React中的任务饥饿行为是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“React中的任务饥饿行为是什么意思”吧!本文是在React...
    99+
    2024-04-02
  • React Flux与Redux设计及使用原理是什么
    本篇内容主要讲解“React Flux与Redux设计及使用原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“React Flux与Redux设计及使用原理是什么”吧!...
    99+
    2023-07-05
  • c++中%是什么意思
    c++ 中 % 表示取模运算,它计算两个整数之间的余数,语法为 result = a % b,其中 a 和 b 为整数,result 为 a 除以 b 时的余数。此外,百分号还用于流格式...
    99+
    2024-04-26
    c++
  • c++中//是什么意思
    bloc++k||||||||block C++ 中的 // 在 C++ 中,"//" 符号表示单行注释的开始,而该行的剩余部分则被视为注释。注释不会被编译器处理,并且仅用于为代码提供...
    99+
    2024-04-26
    c++
  • php中++是什么意思
    php 中 ++ 的含义 在 PHP 中,++ 运算符是一个单目运算符,用于对一个变量或表达式的值进行递增操作。 如何使用 ++ 运算符 前 ++ (前缀递增):将 ++ 放在变量或表达...
    99+
    2024-04-27
    c++
  • c++中→是什么意思
    c++ 中的箭头运算符(->)用于访问对象成员,它将一个指针和一个成员名称结合起来,以访问该成员,等价于点运算符 (.),但要求对象必须通过指针访问。 C++ 中的箭头运算符 (...
    99+
    2024-04-28
    c++
  • c++中$是什么意思
    在 c++ 中,$ 符号用于:字符串化宏:将宏参数转换为字符串形式,格式为 #define str(x) #xstr(hello),结果为 "hello" 字符串常量。异常处理:在 ca...
    99+
    2024-04-28
    c++ 字符串常量
  • c#中+=是什么意思
    c# 中的+=运算符用于将一个值添加到现有的变量或属性中。它等同于将值赋给该变量或属性,然后再添加一个值。此运算符适用于数值类型,用于逐个更新值、累加或简化代码。 C#中的+=运算符 ...
    99+
    2024-05-10
    c#
  • php中是什么意思
    php中的$globals是一个内置的超全局变量,可用于访问当前脚本中定义的所有全局变量,包括访问其他函数定义的全局变量、修改其他函数定义的全局变量以及在嵌套函数中访问外部范围的全局变量...
    99+
    2024-04-27
  • php中@是什么意思
    php 中的 @ 运算符用于抑制错误报告,它会将紧随其后的表达式的错误和警告消息抑制掉。它将错误和警告消息发送到服务器日志中。常用于调试、错误处理和输出控制。不能抑制致命错误,过度使用可...
    99+
    2024-04-27
  • php中==是什么意思
    php中==运算符比较两个表达式的值是否相等。它按照规则比较值和类型,执行类型转换以匹配不相等类型,并返回true(相等)或false(不相等)。与===运算符不同,后者不转换类型,只有...
    99+
    2024-04-27
  • sql中^是什么意思
    sql中的^符号代表按位异或运算,用于比较两个二进制位并返回一个新位。规则为:0 ^ 0 = 0,0 ^ 1 = 1,1 ^ 0 = 1,1 ^ 1 = 0。用途包括:设置或取消标志位,...
    99+
    2024-04-28
  • sql中$是什么意思
    sql 中 $ 符号表示参数占位符,它被替换为查询中要使用的实际值。$ 符号可提高查询的可读性、可重用性和安全性。 SQL 中 $ 的含义 在 SQL 中,$ 符号指的是一个参数占位符...
    99+
    2024-05-02
  • oracle中:=是什么意思
    oracle 中的赋值运算符为 :=,用于将值分配给变量或表达式,它创建一个新的变量或替换现有变量,并将其设置为等号右侧表达式的值。 Oracle 中的赋值运算符 := := 是 Or...
    99+
    2024-05-08
    oracle
  • oracle中(+)是什么意思
    oracle 中 (+) 符号表示外连接符号,用于连接表并返回包含所有参与表行的结果集,允许您检索外键表中的记录,即使主键表中不存在匹配的记录。外连接有三种类型:左外连接、右外连接和全外...
    99+
    2024-05-08
    oracle
  • J2EE是什么意思2又是什么意思
    J2EE是Java 2 Platform, Enterprise Edition的缩写,意思是Java 2企业级平台。它是一种用于开...
    99+
    2023-09-20
    J2EE
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作