mini-program-event-store
Version:
A small responsive system suitable for handling data responsive issues in mini program development
59 lines (50 loc) • 1.47 kB
JavaScript
import { EventStore } from "../src/index.js";
const eventStore = new EventStore({
state: {
name: "why",
friends: ["abc", "cba", "nba"],
banners: [],
recommends: [],
},
actions: {
getHomeMultidata(ctx) {
fetch("https://httpbin.org/post", {
method: "POST",
body: JSON.stringify({
banners: ["流行", "新款", "推荐"],
recommend: ["精选推荐", "品牌清仓"],
}),
})
.then((response) => response.json())
.then((res) => {
const { banners, recommend } = JSON.parse(res.data);
ctx.banners = banners;
ctx.recommends = recommend;
})
.catch(() => {});
},
},
});
// 数据监听
eventStore.onState("name", (value) => {
console.log("监听name:", value);
});
eventStore.onState("friends", (value) => {
console.log("监听friends:", value);
});
eventStore.onState("banners", (value) => {
console.log("监听banners:", value);
});
eventStore.onState("recommends", (value) => {
console.log("监听recommends", value);
});
// 同时监听多个数据
eventStore.onStates(["name", "friends"], (value) => {
console.log("监听多个数据:", value); // 数组类型
});
// 数据变化
setTimeout(() => {
eventStore.setState("name", "lilei");
eventStore.setState("friends", ["kobe", "james"]);
}, 1000);
eventStore.dispatch("getHomeMultidata");