微信小程序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 相关文章推荐
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
May 18 Javascript
jQuery弹性滑动导航菜单实现思路及代码
May 02 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
Dec 11 Javascript
jquery重复提交请求的原因浅析
May 23 Javascript
node.js中的fs.truncateSync方法使用说明
Dec 15 Javascript
JS实现跟随鼠标立体翻转图片的方法
May 04 Javascript
关于TypeScript中import JSON的正确姿势详解
Jul 25 Javascript
javaScript实现滚动条事件详解
Mar 24 Javascript
深入理解Angular4订阅(Subscribe)与取消
Nov 22 Javascript
js继承的这6种方式!(上)
Apr 23 Javascript
jQuery 查找元素操作实例小结
Oct 02 jQuery
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
Linux编译升级php的详细方法
2013/11/04 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
ThinkPHP添加更新标签的方法
2014/12/05 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
读jQuery之一(对象的组成)
2011/06/11 Javascript
jQuery.extend 函数的详细用法
2012/06/27 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python环形单链表的约瑟夫问题详解
2018/09/27 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
行政专员的岗位职责
2014/03/10 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
高校优秀辅导员事迹材料
2014/05/07 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
纯html+css实现Element loading效果
2021/08/02 HTML / CSS
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript