All Projects → charleyw → Wechat Weapp Redux

charleyw / Wechat Weapp Redux

微信小程序Redux绑定

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Wechat Weapp Redux

Sentry Miniapp
Sentry 小程序/小游戏 SDK:用于小程序/小游戏平台的 Sentry SDK(目前支持微信、字节跳动、支付宝、钉钉、QQ、百度小程序,微信、QQ 小游戏)
Stars: ✭ 269 (-42.03%)
Mutual labels:  weapp
Weapp Qrcode
Wechat miniapp generate qrcode image
Stars: ✭ 339 (-26.94%)
Mutual labels:  weapp
Westore
更好的小程序项目架构
Stars: ✭ 3,897 (+739.87%)
Mutual labels:  weapp
Weapp One
ONE·一个|图文 微信小程序/开源代码
Stars: ✭ 295 (-36.42%)
Mutual labels:  weapp
Wuss Weapp
🐳wuss-weapp 一款高质量,组件齐全,高自定义的微信小程序UI组件库
Stars: ✭ 338 (-27.16%)
Mutual labels:  weapp
Weapp Zhihulive
知乎Live微信小程序 & asyncio爬虫
Stars: ✭ 346 (-25.43%)
Mutual labels:  weapp
Ironinfoweapp
铜陵回归物资有限公司支持, 钢材信息小程序(基于uni-app), 后台账密: tour, tour520
Stars: ✭ 257 (-44.61%)
Mutual labels:  weapp
Wepy
小程序组件化开发框架
Stars: ✭ 21,648 (+4565.52%)
Mutual labels:  weapp
Lemonjournal
A WeChat mini program demo based on Wafer2 framework - 微信小程序Demo:柠檬手帐 - 界面简洁的图片编辑应用,支持图片和文字的移动、旋转、缩放、保存编辑状态并生成预览图
Stars: ✭ 341 (-26.51%)
Mutual labels:  weapp
Weapp One
[不再维护] 仿 「ONE · 一个」 的微信小程序
Stars: ✭ 377 (-18.75%)
Mutual labels:  weapp
Weapp Douban Film
微信小程序-豆瓣电影
Stars: ✭ 303 (-34.7%)
Mutual labels:  weapp
Leantodo Weapp
LeanTodo implemented with Weapp
Stars: ✭ 316 (-31.9%)
Mutual labels:  weapp
Minui
基于规范的小程序 UI 组件库,自定义标签组件,简洁、易用、工具化
Stars: ✭ 3,512 (+656.9%)
Mutual labels:  weapp
Weapp Demo Breadtrip
基于面包旅行 API 制作的微信小程序示例
Stars: ✭ 282 (-39.22%)
Mutual labels:  weapp
Okam
Mini program development framework
Stars: ✭ 399 (-14.01%)
Mutual labels:  weapp
Wafer2 Node Sdk
Wafer2 SDK for Node.js
Stars: ✭ 270 (-41.81%)
Mutual labels:  weapp
Gitter
Gitter for GitHub - 可能是目前颜值最高的GitHub微信小程序客户端
Stars: ✭ 3,498 (+653.88%)
Mutual labels:  weapp
Beardiary
微信小程序之小熊の日记
Stars: ✭ 456 (-1.72%)
Mutual labels:  weapp
Mpvue
基于 Vue.js 的小程序开发框架,从底层支持 Vue.js 语法和构建工具体系。
Stars: ✭ 20,383 (+4292.89%)
Mutual labels:  weapp
Wxapp Boilerplate
使用 webpack, babel, scss 开发的微信/支付宝小程序项目脚手架
Stars: ✭ 367 (-20.91%)
Mutual labels:  weapp

微信小程序Redux绑定

用于在微信小程序为页面绑定Redux Store。

PS: 代码是基于react-redux修改的

安装

  1. clone或者下载代码库到本地:

     git clone https://github.com/charleyw/wechat-weapp-redux
    
  2. 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对象上。

Example

详细的使用例子可以参照: wechat-weapp-redux-todos

真机实测版请clone下面这个repo,用小程序开发工具开启预览:

git clone -b release https://github.com/charleyw/wechat-weapp-redux-todos.git

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].