zoukankan      html  css  js  c++  java
  • 自己写的一个React事件流处理框架

    这个框架是在开始学习React的时候写的,当时主要是觉得Redux的事件流过于复杂,以及考虑到在多层的props的传递中的代码复杂度的问题,尝试着完成了这样一个框架,通过维护一个全局的数据管理器管理storage来部分替代Redux的使用,将storage中的数据直接映射到组件的state中。具体代码和示例可以见我的GitHub:https://github.com/alexxyzeng/easy-react-router-4

    本框架主要解决ReactJS View层事件逻辑过多和多层组件之间父-子数据传递的嵌套问题

    主要作用

    1.通过创建数据管理器DataComm的单例,管理全局storage,实现基于ReactJS框架下任意组件之间的数据传递;

    2.抽出具体的处理逻辑到Action中,避免在组件中直接处理太多的事件逻辑

    使用方法

    1.引入自定义的basecomp.js,创建继承自BaseComp的的自定义组件,让它拥有BaseComp基类中定义的方法;

    2.编写自定义Action,并调用DataComm单例注册该Action;

    3.在自定义组件中调用exec(),调用指定的Action;

    4.在自定义组件中通过bindData(),将获取到的数据绑定到组件的state中

    主要组件方法

    1.事件执行方法

    /*

    * 本方法实现对指定Action的调用,并传递参数给Action中的对应方法进行处理

    * Action.actionType: 第一个参数,必选,包括指定的方法集名称(Action)和方法名称(actionType),以"."分隔

    * arg1, arg2, ...: 传递给指定方法的参数,可选

    */

    this.exec(Action.actionType, arg1, arg2,....) {

    ... ...

    }

    2.数据绑定方法

    #####/*

    * 实现全局storage中的指定数据和组件state中指定数据的绑定

    * property : 要获取的数据的名称

    * stateProperty : 组件state中要绑定的数据的名称

    #####*/

    this.bindData(property, stateProperty) {

    ... ...

    #####}

  • 相关阅读:
    MySQL集群搭建(4)-MMM+LVS+Keepalived
    MySQL集群搭建(3)-MMM高可用架构
    MySQL集群搭建(2)-主主从模式
    MySQL集群搭建(1)-主备搭建
    MySQL 安装(二进制版)
    Nginx缓存了DNS解析造成后端不通--代理
    开启tcp_timestamps和tcp_tw_recycle造成NAT转发连接不上
    tcp_tw_recycle参数引发的故障
    记一次TIME_WAIT网络故障
    TCP服务端收到syn但是不回复syn ack问题分析
  • 原文地址:https://www.cnblogs.com/xiayao/p/9329427.html
Copyright © 2011-2022 走看看