美文网首页简友广场
wepy之redux状态管理

wepy之redux状态管理

作者: 前端来入坑 | 来源:发表于2018-12-04 17:57 被阅读140次

按照官方生成的wepy默认目录是这样的,如果不懂得如何生成wepy默认项目,请看这里

image.png
介绍redux涉及到的几个目录
//types/counter.js 定义方法的名字

export const INCREMENT = 'INCREMENT'

export const DECREMENT = 'DECREMENT'

export const ASYNC_INCREMENT = 'ASYNC_INCREMENT'
//types/index.js 暴露counter.js里面定义的方法名字

export * from './counter'
//reducers/counter.js 定义方法的名字

//通过handleActions函数导出
import { handleActions } from 'redux-actions'
//这里把types里的函数名引入 注意相对路径
import { INCREMENT, DECREMENT, ASYNC_INCREMENT } from '../types/counter'

export default handleActions({
  [INCREMENT] (state) {
    //也可以在这个位置进行逻辑的处理之后再return处理之后的值,当然简单的处理直接放return里面处理也是可以的
    return {
      ...state,
      num: state.num + 1
    }
  },
  [DECREMENT] (state) {
    return {
      ...state,
      num: state.num - 1
    }
  },
  [ASYNC_INCREMENT] (state, action) {
    return {
      ...state,
      asyncNum: state.asyncNum + action.payload
    }
  }
}, {
  num: 0,
  asyncNum: 0
})

//reducers/index.js 定义方法的名字

import { combineReducers } from 'redux'
//函数里面的counter使用的时候会用到
import counter from './counter'

export default combineReducers({
  counter
})

上面默认生成的目录都有,看懂即可,接下来是如何使用,上面已经定义了两个状态管理的值num和asyncNum:跟vuex也有类似的地方,redux这里使用了connect连接器

//需要使用到num的某个页面
<template>
  <view>
    <text> {{stateNum}} </text>
    <text> {{asyncNum}} </text>
  </view>
</template>
<script>
  import wepy from 'wepy'
  //引入connect连接器
  import { connect } from 'wepy-redux'
  //引入定义的方法
  import { INCREMENT, DECREMENT } from '../store/types/counter'
  import { asyncInc } from '../store/actions'

  @connect({
    stateNum (state) {
    //这里state后面的counter就是刚刚reducers/index.js里面定义的名字
      return state.counter.num
    },
    asyncNum (state) {
      return state.counter.asyncNum
    }
  }, {
    //这里也可以用es6的语法简写
    incNum: INCREMENT,
    decNum: DECREMENT,
    asyncInc
  })
export default class Index extends wepy.page {
  ...
 
    onLoad() {
      //如果需要在这里面调用incNum,而不是this.incNum()
      this.methods.incNum();
      //如果需要在这里面使用num的值
      this.stateNum;
      console.log(this.stateNum);//先打印1,后打印2---执行了两遍onLoad
    }
}
</script>

官网https://github.com/sysuzjz/wepy-store
参考https://www.jianshu.com/p/cc9a78d091e7

相关文章

  • wepy之redux状态管理

    按照官方生成的wepy默认目录是这样的,如果不懂得如何生成wepy默认项目,请看这里 上面默认生成的目录都有,看懂...

  • WePY中Redux学习

    WePY是Vue封装的让小程序支持组件化开发的框架 WePY官方文档 重点学习Redux Redux是状态管理的框...

  • 小程序日志之《wepy中使用redux 入门》

    最近在学习小程序开发,选择了wepy,用redux状态管理。根据wepy的文档,取下来官方demo到本地,然后进一...

  • Redux

    Redux状态管理 Redux 是 JavaScript 状态管理容器,提供可预测的状态管理。redux 可以让你...

  • 小程序学习之旅-Redux(碎片)

    在 wepy 中可以使用 redux 和 mobx 来进行状态管理,但是鉴于后者我完我没啥了解,于是乎还是选择 r...

  • Wepy之Redux

    刚接手小程序第三周...接了一个用状态管理的项目由于之前有看到大佬写了一篇干货 就转载过来了如今自己要用了 抽个...

  • 手把手教你在小程序里使用 Redux

    微信小程序里使用 Redux 状态管理 前言 前阵子一直在做小程序开发,采用的是官方给的框架 wepy , 如果还...

  • React实战之Redux

    Redux、React-Redux 简介 Redux 是 JavaScript 状态容器,提供可预测化的状态管理。...

  • Redux状态管理与React-router

    Redux状态管理 概念:Redux是专注于状态管理的库 组成:store,state,action,reduce...

  • SwiftUI 中使用 Redux 设计模式

    什么是Redux ?Redux 是 JavaScript 状态容器,提供可预测化的状态管理 Redux的工作原理 ...

网友评论

    本文标题:wepy之redux状态管理

    本文链接:https://www.haomeiwen.com/subject/tuufcqtx.html