返回顶部
首页 > 资讯 > 前端开发 > 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://lsjlt.com/news/87094.html(转载时请注明来源链接)

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

猜你喜欢
  • 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 Flux与Redux设计及使用原理是什么
    本篇内容主要讲解“React Flux与Redux设计及使用原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“React Flux与Redux设计及使用原理是什么”吧!...
    99+
    2023-07-05
  • React中的任务饥饿行为是什么意思
    本篇内容主要讲解“React中的任务饥饿行为是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“React中的任务饥饿行为是什么意思”吧!本文是在React...
    99+
    2024-04-02
  • php中=是什么意思
    本文操作环境:windows7系统、PHP7.4版、DELL G3电脑php中=是什么意思?PHP 中基础的赋值运算符是 "="。这意味着右侧赋值表达式会为左侧运算数设置值。如 z=x+y,右侧表达式为左侧运算数设置值。...
    99+
    2021-07-01
    php
  • java中“...”是什么意思
    解释:可变长参数,就是这个位置可以传入任意个该类型参数,简单来说就是个数组。如果是形参里面出现,表示的是可变参数,即表示的传入的参数个数是可变,你传多少个参数都被放到一个数组里面。例如:public static void dealArra...
    99+
    2020-02-17
    java基础 java ... 意思
  • jquery中=是什么意思
    这篇文章主要介绍“jquery中=是什么意思”,在日常操作中,相信很多人在jquery中=是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jquery中=是什么意思”...
    99+
    2024-04-02
  • javascript中%是什么意思
    小编给大家分享一下javascript中%是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • javascript中=是什么意思
    这篇文章主要讲解了“javascript中=是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript中=是什么意思”吧! ...
    99+
    2024-04-02
  • Python中+=是什么意思
    在while loops里我们常常会碰到的 += 意思很简单,大致上大家都说了再加以解释吧!>>> num = 1 当 num 小过5 或等于 5 它会一直不断的输出,直到 num 大过才会停止输出"I'm Mtcy"在这...
    99+
    2023-01-31
    Python
  • oracle中:=是什么意思
    oracle 中的赋值运算符为 :=,用于将值分配给变量或表达式,它创建一个新的变量或替换现有变量,并将其设置为等号右侧表达式的值。 Oracle 中的赋值运算符 := := 是 Or...
    99+
    2024-05-08
    oracle
  • oracle中(+)是什么意思
    oracle 中 (+) 符号表示外连接符号,用于连接表并返回包含所有参与表行的结果集,允许您检索外键表中的记录,即使主键表中不存在匹配的记录。外连接有三种类型:左外连接、右外连接和全外...
    99+
    2024-05-08
    oracle
  • oracle中||是什么意思
    oracle 中的 || 运算符用于连接两个字符串,相当于其他语言中的 + 运算符。它将两个字符串表达式连接在一起,如果任一操作数为 null,结果也会为 null。|| 运算符的优先级...
    99+
    2024-05-08
    oracle
  • c#中??是什么意思
    c#中的操作符(空合并操作符)为null操作数提供备用值:检查操作数x是否为null。如果x不为null,返回x的值。如果x为null,返回备用值表达式y。 C# 中的 操作符 C#...
    99+
    2024-05-10
    c# 代码可读性
  • c#中+=是什么意思
    c# 中的+=运算符用于将一个值添加到现有的变量或属性中。它等同于将值赋给该变量或属性,然后再添加一个值。此运算符适用于数值类型,用于逐个更新值、累加或简化代码。 C#中的+=运算符 ...
    99+
    2024-05-10
    c#
  • c#中//是什么意思
    在 c# 中,// 表示单行注释,用于添加不影响代码运行的附加信息。语法为:// 注释内容。不同于多行注释 (/ 多行注释内容 /),单行注释只适用于一行,并提供有关代码片段、变量、方法...
    99+
    2024-05-10
    c#
  • php中+=是什么意思
    在 php 中,+= 运算符用于将变量或表达式的值加到另一个变量中,工作原理是将变量的现有值与表达式的值相加并存储回变量。它通常用于递增或累加值,但只能用于数字值,不能用于字符串或其他数...
    99+
    2024-04-27
  • php中===是什么意思
    php 中的 === 运算符用于比较两个表达式的值和类型是否完全相等。它会在值和类型都相等时返回 true,否则返回 false。 PHP 中的 === 运算符 在 PHP 中,===...
    99+
    2024-04-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作