vuex与redux,我们都一样
vuex与redux的主要区别:
redux:生成的全局数据流是通过每个组件的props逐层传递到各个子组件的,通过@connect装饰器绑定在this.props上面。
vuex :生成的全局数据则是通过getter集成到了框架内部,每个全局属性并非逐层传递到子组件,而是通过数据绑定的方式直接连接到各个子组件,数据及方法都是绑定在组件this上面。
react项目使用react-redux相关依赖;(create-react-app);
cnpm install redux react-redux redux-actions redux-thunk --save
redux-actions 用来创建规范化的action,简化reducer操作 官方api文档 https://www.npmjs.com/package/redux-actions
redux-thunk 实现redux异步操作 官方api文档 https://www.npmjs.com/package/redux-thunk
vue项目使用vuex相关依赖; (vue-cli)
cnpm install vuex --save
下面就redux 与 vuex 单个模块的state代码贴出
redux:
import { createAction, handleActions } from 'redux-actions'
import { getUserInfo } from '../api/getData.js'
export const saveUserInfo = createAction('SAVEUSERINFO')
export const addNum = createAction('ADDNUM')
export const test = handleActions({
    [saveUserInfo]: (state, action) => {
        return {
            ...state,
            userInfo: action.payload,
        }
    },
    [addNum]: (state, action) => ({
        ...state,
        num: state.num + 1,
    })
}, {
    num: 1,
    userInfo:{
        user:"zq",
        _id:""
    }
});
export function getUserInfoAction() {
    return dispatch => {
        getUserInfo().then(res => {
            if (res.data.code === 0) {
                dispatch(saveUserInfo(res.data.data))
            }
        })
    }
}
vuex
import { getUserInfo } from '@/api/getData'
export const moduleA = {
  // namespaced: true,
  state: {
    userInfo: { user: "zq", _id: "" },
    num: 10
  },
  mutations: {
    saveUserInfo(state, action) {
      state.userInfo = action
    },
    addNum(state, action) {
      state.num++
    }
  },
  getters: {
    num(state) {
      return state.num += 100
    }
  },
  actions: {
    async getUserInfoAction({ commit }) {
      try {
        let res = await getUserInfo()
        if (res.data.code === 0) {
          commit('saveUserInfo', res.data.data)
        }
      } catch (err) {
        console.log(err)
      }
    }
  }
}
redux完整demo 地址:https://github.com/zhuzeliang/react-node-demo
vuex完整demo 地址:https://github.com/zhuzeliang/vue-node-demo
vuex与redux,我们都一样的更多相关文章
- vuex 与 redux 的 区别
		一:redux和flux的区别 1)redux是flux中的一个实现 2))在redux中我们只能定义一个store,在flux中我们可以定义多个 3)在redux中,store和dispatch都放 ... 
- 37行代码构建无状态组件通信工具-让恼人的Vuex和Redux滚蛋吧!
		状态管理的现状 很多前端开发者认为,Vuex和Redux是用来解决组件间状态通信问题的,所以大部分人仅仅是用于达到状态共享的目的.但是通常Redux是用于解决工程性问题的,用于分离业务与视图,让结构更 ... 
- vuex、redux、mobx 对比
		出处:https://www.w3cplus.com/javascript/talk-about-front-end-state-management.html 其实大部分概念都差不多,只不过VUEX ... 
- 状态管理工具对比vuex、redux、flux
		1.为什么要使用状态管路工具 在跨层级的组件之间传递信息,尤其是复杂的组件会非常困难.也不利于开发和维护,这时我们就a需要用到状态管理工具. 2.Flux 
- flux,redux,vuex状态集管理工具之间的区别
		一:redux和flux的区别 1)redux是flux中的一个实现 2))在redux中我们只能定义一个store,在flux中我们可以定义多个 3)在redux中,store和dispatch都放 ... 
- Redux/Mobx/Akita/Vuex对比 - 选择更适合低代码场景的状态管理方案
		近期准备开发一个数据分析 SDK,定位是作为数据中台向外输出数据分析能力的载体,前端的功能表现类似低代码平台的各种拖拉拽.作为中台能力的载体,SDK 未来很大概率会需要支持多种视图层框架,比如Vue2 ... 
- 初识vuex
		1.简介 vuex是 vue官方推荐的一个状态管理器.当我们遇到很多状态改变时,组件之间的通信就会变得复杂,这时候vuex的强大就展现出来. 我们从vuex的原理以及vuex的api两个部分介绍vue ... 
- vue总结 08状态管理vuex
		状态管理 类 Flux 状态管理的官方实现 由于状态零散地分布在许多组件和组件之间的交互中,大型应用复杂度也经常逐渐增长.为了解决这个问题,Vue 提供 vuex:我们有受到 Elm 启发的状态管 ... 
- Vuex实践
		本文来自网易云社区 作者:刘凌阳 前言 2017年对于Vue注定是不平凡的一年.凭借着自身简介.轻量.快速等特点,Vue俨然成为最火的前端MVVM开发框架.随着Vue2.0的release,越来越多的 ... 
随机推荐
- Python爬虫开发【第1篇】【beautifulSoup4解析器】
			CSS 选择器:BeautifulSoup4 Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据. pip 安装:pip instal ... 
- BestCoder Round #56/hdu5463 Clarke and minecraft 水题
			Clarke and minecraft 问题描述 克拉克是一名人格分裂患者.某一天,克拉克分裂成了一个游戏玩家,玩起了minecraft.渐渐地,克拉克建起了一座城堡. 有一天,克拉克为了让更多的人 ... 
- python3 使用http.server模块 搭建一个简易的http服务器
			from http.server import HTTPServer, BaseHTTPRequestHandler import json data = {'result': 'this is a ... 
- 蓝书3.3 SPFA算法的优化
			T1 最小圈 bzoj 1486 题目大意: 一个环的权值平均值为定义为一个这个环上所有边的权值和除以边数 求最小的环的权值平均值 思路: 二分一个值 把所有边减去这个值 判断是否有负环 #inclu ... 
- bzoj3561
			3561: DZY Loves Math VI Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 240 Solved: 163[Submit][Sta ... 
- bzoj 1791: [Ioi2008]Island 岛屿【基环树+单调队列优化dp】
			我太菜了居然调了一上午-- 这个题就是要求基环树森林的基环树直径和 大概步骤就是找环->dp找每个环点最远能到达距离作为点权->复制一倍环,单调队列dp 找环是可以拓扑的,但是利用性质有更 ... 
- Golang 入门 : 竞争条件
			笔者在前文<Golang 入门 : 理解并发与并行>和<Golang 入门 : goroutine(协程)>中介绍了 Golang 对并发的原生支持以及 goroutine 的 ... 
- jenkins手把手教你从入门到放弃02-jenkins在Windows系统安装与配置(详解)
			简介 上一篇对jenkins有了大致了解之后,那么我们就开始来安装一下jenkins. Jenkins安装 一.安装Java环境 1.你需要做的第一件事情就是在你的机器上安装Java环境.Jenkin ... 
- python自动化测试学习笔记-10YAML
			之前学习的编写测试用例的方法,都是从excel中编写接口的测试用例,然后通过读取excel文件进行接口自动化测试,这种方式我们叫做数据驱动的方式,由于excel操作起来不灵活,无法实现关联关系的接口测 ... 
- [转]Linux系统调用--fcntl函数详解
			功能描述:根据文件描述词来操作文件的特性. 文件控制函数 fcntl -- file control头文件: #include <unistd.h> #include & ... 
