小程序的状态管理 wenaox
程序员文章站
2022-06-21 10:28:55
最近开发小程序,为了解耦数据 写了一个wenaox的库,一开始放在libs里使用相对路径引入,觉得很辛苦, 后面发现小程序的npm已经进入beta版本,于是下载了beta开发工具,构建后就可以直接import引入 很爽 有需要可以下载用一下 [Wenaox][wenaox url] [![NPM v ......
最近开发小程序,为了解耦数据 写了一个wenaox的库,一开始放在libs里使用相对路径引入,觉得很辛苦,
后面发现小程序的npm已经进入beta版本,于是下载了beta开发工具,构建后就可以直接import引入 很爽
有需要可以下载用一下
wechat state management
的小程序版本
Install
npm i -S wenaox or yarn add wenaox
小程序如何
Example
简单说说怎么使用,多个 Contro 可以去看看,构造 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>
上一篇: JS获取访客IP+判断归属地+自动跳转
下一篇: 说个不作不死的事