Vuex五个核心概念

news/2024/7/10 1:09:22 标签: vue

Vuex 是什么?

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension (opens new window),提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

State

单一状态树
vuex的基本数据,用来存储变量

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    // 存储共享数据  映射到 computed   ...mapState(["属性名"])
    // 数据类型可以是 数值、字符串等基本类型,也可以是{}、[]、[{},{}]
    // 不推荐直接操作,而应该使用 actions
    user: {
      id: 1,
      name: "张三"
    }
  },

Getter

从基本数据(state)派生的数据,相当于state的计算属性

getters: {
    // 主要用对共享数据进行显示调整  1/2=>男/女
    // 映射到 computed   ...mapGetters(["属性名"])
    info(state) {
      return `编号:${state.user.id}  姓名:${state.user.name}`;
    }
  },

Mutation

提交更新数据的方法,必须是同步的(如果需要异步使用action)。每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。  回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。

 mutations: {
    // 直接操作 state 里的数据
    // 映射到 methods   ...mapMutations(["方法名"])
    // 不推荐直接操作,而应该使用 actions
    setUser(state, name) {
      state.user.name = name;
    }
  },

Action

和mutation的功能大致相同,不同之处在于 ==》1. Action 提交的是 mutation,而不是直接变更状态。 2. Action 可以包含任意异步操作。

actions: {
    // 间接操作 state 里的数据,通过调用 mutations 里的函数
    // 映射到 methods   ...mapActions(["方法名"])
    setUser(context, name) {
      context.commit("setUser", name)
    }
  },

Module

模块化vuex,可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理。

mutations: {
    increment (state) {
      // 这里的 `state` 对象是模块的局部状态
      state.count++
    }
  },

看一下案例效果
在这里插入图片描述


http://www.niftyadmin.cn/n/685084.html

相关文章

Vuex概述及使用

1.Vuex概述 1.1 组件之间共享数据的方式 父组件向子组件传值:v-bind 属性绑定 子组件向父组件传值:v-on 事件绑定 兄弟组件之间共享数据: Event Bus (只适合小范围数据共享,大范围共享就使用vuex) $on 接…

小米6Android多少,小米6使用的是什么型号摄像头?小米6像素是多少?

小米6除了搭载高通骁龙835处理器、标配6GB运存之外,还配备了后置双摄像头。不过发布会上雷军并没有介绍小米双摄像头的具体参数。那么小米6使用的是什么摄像头,像素是多少呢?从图中可以看到,传感器分别是索尼IMX386三星S5K3M3,而…

uniapp如何封装组件

封装组件涉及的知识点较多,相关文档详见:vue组件详解 扩展组件(uni-ui) uni-ui是DCloud提供的一个跨端ui库,它是基于vue组件的、flex布局的、无dom的跨全端ui框架。 uni-ui不包括基础组件,它是基础组件的…

Redis 分布式锁如何自动续期?

Redis 实现分布式锁 指定一个 key 作为锁标记,存入 Redis 中,指定一个 唯一的用户标识作为 value。 当 key 不存在时才能设置值,确保同一时间只有一个客户端进程获得锁,满足互斥性特性。 设置一个过期时间,防止因系统…

uni-app运行到微信开发者工具

配置 第一步:在HBuilderX点击运行到小程序模拟器进行配置 第二步:安装微信开发者工具 第三步:点击微信开发者工具运行项目 第四步:运行成功后会自动打开微信开发者工具模式 uni-app无法运行到微信开发者工具 很多小伙伴配置…

html让图标替代回退按钮,9款精美别致的CSS3菜单和按钮

原标题:9款精美别致的CSS3菜单和按钮今天我们要来分享9款精美别致的CSS3菜单和按钮,菜单有动画菜单、下拉菜单、环形菜单,按钮也非常漂亮,一起来看看。1、超具立体感的CSS3 3D菜单 菜单项带小图标记得之前向大家分享过不少CSS3 3D…

uniApp--微信小程序,调用组件picker,结果数据响应式丢失问题

最近遇到一个很头疼的问题。 调用一个picker二次封装的组件。 组件中存在计算属性。是需要通过选择修改来查询出来相对应的key和value,结果计算属性在app中可以正常使用和反显,但在小程序中存在问题且不报错!!! 1.调用…