微信小程序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 相关文章推荐
JavaScript面向对象之体会[总结]
Nov 13 Javascript
js常用排序实现代码
Dec 28 Javascript
23个超流行的jQuery相册插件整理分享
Apr 25 Javascript
JScript分割字符串示例代码
Sep 04 Javascript
浅谈类似于(function(){}).call()的js语句
Mar 30 Javascript
js实现简单折叠、展开菜单的方法
Aug 28 Javascript
悬浮广告方法日常收集整理
Mar 18 Javascript
浅谈jQuery双事件多重加载的问题
Oct 05 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
Feb 05 Javascript
js 实现复选框只能选择一项的示例代码
Jan 23 Javascript
vue实现密码显示隐藏切换功能
Feb 23 Javascript
AJAX XMLHttpRequest对象创建使用详解
Aug 20 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
星际争霸任务指南——虫族
2020/03/04 星际争霸
php实现ip白名单黑名单功能
2015/03/12 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
JS之小练习代码
2008/10/12 Javascript
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
2016/05/12 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
nodejs中express入门和基础知识点学习
2018/09/13 NodeJs
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
pandas 将索引值相加的方法
2018/11/15 Python
PyQt5的QWebEngineView使用示例
2020/10/20 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
关于廉洁的广播稿
2014/01/30 职场文书
KTV的创业计划书范文
2014/02/02 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
Go语言应该什么情况使用指针
2021/07/25 Golang
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript