官术网_书友最值得收藏!

Adding the store

The store will act as the data source for our state but will also be able tell any listeners when a change to the store happens:

// demo/store.js

import dispatcher from './dispatcher';

function selectIndex(index) {
store["selectedIndex"] = index;
}

// 1) store registers with dispatcher
dispatcher.register(message => {
switch (message.type) {
// 3) message is sent by dispatcher ( that originated from the first view)
case "SELECT_INDEX":
selectIndex(message.data);
// 4) listener, a view, is being notified of the change
store.emitChange();
break;
}
});

class Store {
constructor() {
this.listeners = [];
}

// 2) listener is added by a view
addListener(listener) {
if (!this.listeners["change"]) {
this.listeners["change"] = [];
}

this.listeners["change"].push(listener);
}

emitChange() {
if (this.listeners["change"]) {
this.listeners["change"].forEach(cb => cb());
}
}

getSelectedItem() {
return store["selectedIndex"];
}
}

const store = new Store();
export default store;
主站蜘蛛池模板: 黄龙县| 鱼台县| 阿巴嘎旗| 武强县| 河北省| 锦州市| 乐东| 沾益县| 茌平县| 黄山市| 奇台县| 天柱县| 丽水市| 于田县| 武义县| 澜沧| 惠来县| 六安市| 周至县| 张家界市| 通江县| 中西区| 天长市| 沂南县| 张掖市| 霍州市| 铜山县| 内乡县| 开阳县| 通江县| 巧家县| 乌恰县| 博乐市| 武定县| 英德市| 万荣县| 辽宁省| 蚌埠市| 浦东新区| 绥化市| 盘锦市|