微信小程序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中的关键字&quot;VAR&quot;使用详解 分享
Jul 31 Javascript
用JQuery实现全选与取消的两种简单方法
Feb 22 Javascript
javascript的创建多行字符串的7种方法
Apr 29 Javascript
js实现图片从左往右渐变切换效果的方法
Feb 06 Javascript
详解Node.js模块间共享数据库连接的方法
May 24 Javascript
Javascript实现的StopWatch功能示例
Jun 13 Javascript
关于Stream和Buffer的相互转换详解
Jul 26 Javascript
深入理解Vue transition源码分析
Jul 30 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
Dec 15 Javascript
Vue基础学习之项目整合及优化
Jun 02 Javascript
vue中添加与删除关键字搜索功能
Oct 12 Javascript
vue项目接口域名动态获取操作
Aug 13 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获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
不用锚点也可以平滑滚动到页面的指定位置实现代码
2013/05/08 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
js中this的用法实例分析
2015/01/10 Javascript
jQuery给动态添加的元素绑定事件的方法
2015/03/09 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
vue实现滑动到底部加载更多效果
2020/10/27 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
Python守护进程和脚本单例运行详解
2017/01/06 Python
Python中协程用法代码详解
2018/02/10 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
Python中的字符串切片(截取字符串)的详解
2019/05/15 Python
Django之PopUp的具体实现方法
2019/08/31 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
演讲稿开场白
2014/01/13 职场文书
资源工程专业毕业生求职信
2014/02/27 职场文书
男女朋友协议书
2014/04/23 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
学籍证明模板
2014/11/21 职场文书
2015年出纳年终工作总结
2015/05/14 职场文书
Java基础-封装和继承
2021/07/02 Java/Android
Redis主从复制操作和配置详情
2022/09/23 Redis