Здравствуйте.
На сколько я понимаю, flux работает по следующему принципу: view подписывается на изменения данных в sotre, если данные store изменились, то перерисовываем view.
Ниже привожу простенький пример, без использование event libs and flux libs (эдогта мой смешно-никчемный flux =) ).
Уточните, пожалуйста, верно ли я понимаю саму идеи подхода flux?
"use strict";
import React from 'react';
import ReactDOM from 'react-dom';
var myEvent = new Event('myEvent');
class Store {
constructor() {
this.data = 'data';
}
getData() {
return this.data;
}
setData(value){
this.data = value;
//Уведомляем, что состояние store изменилось
document.dispatchEvent(myEvent);
}
}
// Создаем хранилище
var StoreApp = new Store();
var HelloWorld = React.createClass({
getInitialState : function () {
var self = this;
//подписываемся на изменения состояние store
document.addEventListener('myEvent', function () {
self.setState({
data : StoreApp.getData()
});
});
return {
data : StoreApp.getData()
};
},
render: function() {
return (
React.DOM.h1({}, this.state.data)
);
}
});
ReactDOM.render(<HelloWorld/>, document.getElementById('test'));
setTimeout(function () {
// изменить состояние store
StoreApp.setData(124124);
}, 2000);