微信小程序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去除字符串末尾的空白实例代码
Sep 22 Javascript
js实现仿qq消息的弹出窗效果
Jan 06 Javascript
jQuery插件pagination实现无刷新分页
May 21 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
Jun 02 Javascript
jQuery 中ajax异步调用的四种方式
Jun 28 Javascript
微信小程序 Toast自定义实例详解
Jan 20 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
Feb 22 Javascript
VsCode插件整理(小结)
Sep 14 Javascript
JS获取数组中出现次数最多及第二多元素的方法
Oct 27 Javascript
node.js将MongoDB数据同步到MySQL的步骤
Dec 10 Javascript
node前端模板引擎Jade之标签的基本写法
May 11 Javascript
vue 检测用户上传图片宽高的方法
Feb 06 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 程式大小
2006/12/06 PHP
浅析PHP绘图技术
2013/07/03 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
php中请求url的五种方法总结
2017/07/13 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
jQuery层级选择器用法分析
2015/02/10 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
使用Python中的tkinter模块作图的方法
2017/02/07 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
python实现网页自动签到功能
2019/01/21 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
历史系毕业生自荐信
2013/10/28 职场文书
自考自我鉴定范文
2013/10/30 职场文书
师范毕业生个人求职信
2013/12/09 职场文书
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL