flux沉思录:面向store和通信机制的前端框架

一、综述

Flux 被用来描述“单向”的数据流,且包含某些特殊的事件和监听器。

响应式编程是一种面向数据流和变化传播的编程范式

flux是响应式编程的一种?

Flux 在本质上采用了模型-视图-控制器 (MVC) 的结构,但引入了很高的复杂性。

https://www.ibm.com/developerworks/cn/web/wa-manage-state-with-redux-p1-david-geary/?mhq=使用%20Redux%20管理状态

二、store与model:

store相当于其它平台中的纯数据model;

或者java中的bean;

store在flux中处于中心节点的位置;

三、Flux架构中的结点:

事件源(包含UI)、store、UI组件;

四、flux中的通信机制

1、由事件源到store的通信机制;

1)通信信道:

var AppDispatcher = require(‘../dispatcher/AppDispatcher‘)

2)发送端表示层:将事件解释为通信数据并发送

var ButtonActions = {

addNewItem: function (text) {

AppDispatcher.dispatch({

actionType: ‘ADD_NEW_ITEM‘,

text: text

});

},

};

3)接收端表示层:将通信数据解释为具体信息和操作

AppDispatcher.register(function (action) {

switch(action.actionType) {

case ‘ADD_NEW_ITEM‘:

ListStore.addNewItemHandler(action.text);

ListStore.emitChange();

break;

default:

// no op

}

})

4)通信数据的格式

actionType: ‘ADD_NEW_ITEM‘,

text: text

5)表示层将通信信道和通信的端点进行了连接:事件源-信道-store;

2、由store到UI的通信机制;

1)EventEmitter.prototype提供了变化的订阅和发布的机制;

ListStore继承了EventEmitter.prototype,因此就能使用ListStore.on()和ListStore.emit(),来监听和触发事件了。

2)通信的信道即为EventEmitter.prototype,它提供的两个端点接口即位ListStore.emit(),ListStore.on();

3)通信的数据为store;

4)通信的端点为store和UI组件;

5)不需要表示层;

http://www.ruanyifeng.com/blog/2016/01/flux.html

Flux is the application architecture that Facebook uses for building client-side web applications. It complements React‘s composable view components by utilizing a unidirectional data flow. It‘s more of a pattern rather than a formal framework

android

原文地址:https://www.cnblogs.com/feng9exe/p/11005358.html

时间: 2024-08-29 19:31:52

flux沉思录:面向store和通信机制的前端框架的相关文章

OOD沉思录 --- 面向动作与面向对象 --- 避免泛滥成灾的类

3.7 从设计中取出不需要的类 只有Get/Set方法的类不算是一个必要的类,Get/Set方法也不算是有意义的行为.这种类降级为属性更加合适. 3.8 去除系统外部的类 如果一个类只调用系统领域的方法,而系统没有向该类调用,则可以认为这个类并不属于系统.可能只是系统的使用者,我们没必要去为此建模.     创建此类时应该问一问“这个类在系统内做什么事情?” 3.9 不要把操作变成类. “我需要一个做...事情的类”,如果有这种想法,请先认真斟酌.这个类真的代表了某个关键抽象概念吗? 名字是动词

PHP沉思录-第六篇-Drupal的性能问题-左轻侯-《程序员》2008年11月号

创建时间:2008-11-09 01:12:51   最后修改时间:2008-11-09 01:12:51 本文发表在<程序员>杂志2008年第11期 PHP沉思录之六:Drupal的性能问题 左轻侯 Drupal是一个基于PHP的开源CMS系统,也是我认为技术上实现得最好的一个PHP应用.Drupal的架构非常优秀,通过微内核+plugin的方式,实现了极佳的扩展性,从而使Drupal远远超出一般的CMS这一范畴.从这个意义上来说,把Drupal称为Web OS似乎更加合适一些.关于Drup

面向消息的持久通信与面向流的通信简要总结

一.面向消息的持久通信 消息队列系统为持久异步通信提供多种支持,本质是提供消息的中介存储能力,这样就不需要消息发送方和接收方在消息传输过程中都保持激活状态. 消息队列模型 应用程序可以通过在特定队列中插入消息来进行通信.消息由一系列通信服务器依次进行转发,最终送达目的地.即使在消息发送过程中接收方的机器未处于运行状态,消息也能送到. 消息队列系统的重要特征之一是,通常只能确保发送方发出的消息最终能插入到接收方的队列中,并不保证消息到达的时间,甚至不保证消息一定会得到读取,这完全由接收方来决定.

(转)浅谈移动操作系统的跨应用通信机制

[核心提示] 对开发者来说,在 iOS 上实现跨应用的通信依然是一件头疼的事.对于 iOS 的竞争对手们来说,这一问题是如何处理的呢?本文浅谈目前主流移动操作系统的跨应用通信机制. 在“应用间通信——iOS 的孤岛困境”一文中,我们曾经讨论过 iOS 上跨应用通信与内容分享的难题.而直到现在,在 iOS 上想实现跨应用的通信和内容分享依然是一件头疼的事,虽然我们已经可以使用 iOS 系统内部整合的分享功能,实现通过 Twitter.电子邮件.短消息的内容分享,但此功能尚未向第三方开发者开放,用户

NSNotificationCenter消息通信机制介绍(KVO)

NSNotificationCenter消息通信机制介绍(KVO) 作用:NSNotificationCenter是专门供程序中不同类间的消息通信而设置的. 注册通知:即要在什么地方接受消息                [[NSNotificationCenter defaultCenter]  addObserver:self selector:@selector(mytest:) name:@" mytest" object:nil];        参数介绍:         

C++沉思录之二——虚函数使用的时机

虚函数使用的时机 为什么虚函数不总是适用? 1. 虚函数有事会带来很大的消耗: 2. 虚函数不总是提供所需的行为: 3. 当我们不考虑继承当前类时,不必使用虚函数. 必须使用虚函数的情况: 1. 当你想删除一个表面上指向基类对象,实际却是指向派生类对象的指针,就需要虚析构函数. C++沉思录之二--虚函数使用的时机,布布扣,bubuko.com

个性化的亲切——《沉思录》引发的感悟

记得初中那阵子,曾经追过明星,甚至美的标准也变成了他——恨不得所有的明星都是长的和他一样,唱的和他一样.除了他的歌,我几乎欣赏不了其他人的歌. 还记得差不多在那个年纪,曾经幻想过世界“大统”——我认为“大统”是达到“大同”,消弭纷争的有效方式.惭愧,后来知道希特勒也是这么想的.此乃后话,不提. 也几乎是那个时候,我不愿再做“出头鸟”,我相信“人多力量大”,我总愿意融在身边的“圈子”,不想显得自己不合群. 个性化,在我们的应试教育体制中从来都没有得到特别的提倡,如果没有良师益友的及时提点,一定会让

React Native通信机制详解

本文转载至 http://blog.cnbang.net/tech/2698/?from=groupmessage&isappinstalled=1 React Native是facebook刚开源的框架,可以用javascript直接开发原生APP,先不说这个框架后续是否能得到大众认可,单从源码来说,这个框架源码里有非常多的设计思想和实现方式值得学习,本篇先来看看它最基础的JavaScript-ObjectC通信机制(以下简称JS/OC). 概览 React Native用iOS自带的Java

php socket通信机制实例说明与代码

php socket通信机制实例说明与代码----什么是socket 所谓socket一般也称作"套接字",用于描述ip地址和端口,是一个通讯链的句柄.使用程序一般经过"套接字"向network发出请求也许应对network请求.说白了就是一种通讯机制.它类似于银行,电信啊这一些部分的电话客服业务单元.您打电话的时候,那边会调设置一个人回答您的问题,客服业务单元就相当于socket的服务器端了,您这边呢就相当于用户端了,在和您通话完结前,假设有人在想找和您通话的那个