微信小程序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 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
Apr 07 Javascript
jQuery Animation实现CSS3动画示例介绍
Aug 14 Javascript
jQuery实现的一个自定义Placeholder属性插件
Aug 11 Javascript
一个获取第n个元素节点的js函数
Sep 02 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
Feb 18 Javascript
在线所见即所得HTML编辑器的实现原理浅析
Apr 25 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
Aug 01 Javascript
微信小程序中如何计算距离某个节日还有多少天
Jul 15 Javascript
IE11下处理Promise及Vue的单项数据流问题
Jul 24 Javascript
layui数据表格跨行自动合并的例子
Sep 02 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
Nov 07 Javascript
JS获取表格视图所选行号的ids过程解析
Feb 21 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之PHP语法学习笔记1
2006/12/17 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
PHP类型约束用法示例
2016/09/28 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
2017/08/14 PHP
js控制表单操作的常用代码小结
2013/08/15 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
js canvas实现放大镜查看图片功能
2017/06/08 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
详解Vue如何支持JSX语法
2017/11/10 Javascript
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
python使用邻接矩阵构造图代码示例
2017/11/10 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
django admin 添加自定义链接方式
2020/03/11 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
canvas 绘图时位置偏离的问题解决
2020/09/16 HTML / CSS
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
高中毕业的自我鉴定
2013/12/09 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
大学军训的体会
2014/11/08 职场文书
2014年电厂工作总结
2014/12/04 职场文书
nginx服务器的下载安装与使用详解
2021/08/02 Servers
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python