最近開發小程式,為瞭解耦數據 寫了一個wenaox的庫,一開始放在libs里使用相對路徑引入,覺得很辛苦, 後面發現小程式的npm已經進入beta版本,於是下載了beta開發工具,構建後就可以直接import引入 很爽 有需要可以下載用一下 [Wenaox][wenaox url] [![NPM v ...
最近開發小程式,為瞭解耦數據 寫了一個wenaox的庫,一開始放在libs里使用相對路徑引入,覺得很辛苦,
後面發現小程式的npm已經進入beta版本,於是下載了beta開發工具,構建後就可以直接import引入 很爽
有需要可以下載用一下
Wenaox
wechat state management
renaox 的小程式版本
Install
npm i -S wenaox
or
yarn add wenaox
小程式如何構建 npm
Example
簡單說說怎麼使用,多個 Contro 可以去renaox看看,構造 Store 是一樣的
在 app.js 中
import { Store, Provider } from 'wenaox';
const state = {
count: 0,
};
const methods = {
syncs: {
addCount(state, payload) {
state.count = state.count + 1;
},
subtractCount(state, payload) {
state.count = state.count - 1;
},
},
asyncs: {
asyncAddCount(payload, rootState) {
setTimeout(this.addCount, 1e3);
},
},
};
const store = new Store({ state, methods });
const appConfig = {
//some config
};
App(Provider(store)(appConfig));
在 page/index.js 中
import { orm } from 'wenaox';
const mapState = state => ({
count: state.count,
});
const mapMethods = methods => ({
addCount: methods.addCount,
subtractCount: methods.subtractCount,
asyncAddCount: methods.asyncAddCount,
});
const pageConfig = {
//some config
};
Page(orm(mapState, mapMethods)(pageConfig));
在 page/index.wxml 中
<view>{{count}}</view>
<view bindtap="addCount">count + 1</view>
<view bindtap="asyncAddCount">async count + 1</view>
<view bindtap="subtractCount">count - 1</view>