微信小程序Redux绑定实例详解


Posted in Javascript onJune 07, 2017

微信小程序Redux绑定实例详解

安装

clone或者下载代码库到本地:

git clone https://github.com/charleyw/wechat-weapp-redux

将dist/wechat-weapp-redux.js(或者拷贝minify的也可以)文件直接拷贝到小程序的工程中,例如(下面假设我们把第三方包都安装在libs目录下):

cd wechat-weapp-redux
 cp -r dist/wechat-weapp-redux.js <小程序根目录>/libs

上面的命令将包拷贝到小程序的libs目录下

使用

1.将Redux Store绑定到App上。

const store = createStore(reducer) // redux store
 
 const WeAppRedux = require('./libs/wechat-weapp-redux/index.js');
 const {Provider} = WeAppRedux;

Provider是用来把Redux的store绑定到App上。

App(Provider(store)({
 onLaunch: function () {
  console.log("onLaunch")
 }
}))

provider的实现只是简单的将store加到App这个global对象上,方便在页面中用getApp取出来

上面这段代码等同于:

App({
 onLaunch: function() {
   console.log( "onLaunch" )
  },
  store: store
})

2.在页面的定义上使用connect,绑定redux store到页面上。

const pageConfig = {
  data: {
  },
  ...
 }

页面的定义

const mapStateToData = state => ({
  todos: state.todos,
  visibilityFilter: state.visibilityFilter
 })

定义要映射哪些state到页面

const mapDispatchToPage = dispatch => ({
  setVisibilityFilter: filter => dispatch(setVisibilityFilter(filter)),
  toggleTodo: id => dispatch(toggleTodo(id)),
  addTodo: text => dispatch(addTodo(text)),
 })

定义要映射哪些方法到页面

const nextPageConfig = connect(mapStateToData, mapDispatchToPage)(pageConfig)

使用connect将上述定义添加到pageConfig中。

Page(nextPageConfig);

注册小程序的页面

3.说明

完成上述两步之后,你就可以在this.data中访问你在mapStateToData定义的数据了。

mapDispatchToPage定义的action会被映射到this对象上。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
最近项目写了一些js,水平有待提高
Jan 31 Javascript
dojo随手记 gird组件引用
Feb 24 Javascript
jquery提交form表单时禁止重复提交的方法
Feb 13 Javascript
chrome下jq width()方法取值为0的解决方法
May 26 Javascript
AngularJS实现根据变量改变动态加载模板的方法
Nov 04 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
Jun 19 Javascript
underscore之function_动力节点Java学院整理
Jul 11 Javascript
JavaScript实现图片懒加载的方法分析
Jul 05 Javascript
js自定义input文件上传样式
Oct 26 Javascript
vue 使用鼠标滚动加载数据的例子
Oct 31 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
May 27 Javascript
JS继承实现方法及优缺点详解
Sep 02 Javascript
Ionic3 UI组件之Gallery Modal详解
Jun 07 #Javascript
vue2.0 中#$emit,$on的使用详解
Jun 07 #Javascript
vue2.0 自定义日期时间过滤器
Jun 07 #Javascript
详解Node.js 命令行程序开发教程
Jun 07 #Javascript
详解vee-validate的使用个人小结
Jun 07 #Javascript
微信小程序多张图片上传功能
Jun 07 #Javascript
Vue.js对象转换实例
Jun 07 #Javascript
You might like
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
基于PHP静态类的原罪详解
2013/05/06 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
php header函数的常用http头设置
2015/06/25 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
node.js中watch机制详解
2014/11/17 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
js中this的指向问题归纳总结
2018/11/28 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
用实例说明python的*args和**kwargs用法
2013/11/01 Python
Python中index()和seek()的用法(详解)
2017/04/27 Python
在centos7中分布式部署pyspider
2017/05/03 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
python读取Kafka实例
2019/12/23 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
政法大学毕业生自荐信范文
2014/01/01 职场文书
监察建议书范文
2014/03/12 职场文书
甘南现象心得体会
2014/09/11 职场文书
给领导敬酒词
2015/08/12 职场文书
python基础之文件处理知识总结
2021/05/23 Python