vuex学习

vuex学习笔记 Vuex的安装、配置、使用,核心概念(state、getter、mutation、action),Module模块化 阅读详情

##1.安装vuex
npm install vuex --save
使用npm安装并保存到package.json中

	 "devDependencies": {
		 "vuex": "^2.1.1",
 },

##2.配置
配置方式和配置router(路由)差不多

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)
//创建Store实例
const store = new Vuex.Store({
  // 存储状态值
  state: {
    ...
  },
  // 状态值的改变方法,操作状态值
  // 提交mutations是更改Vuex状态的唯一方法
  mutations: {
    ...
  },
  // 在store中定义getters(可以认为是store的计算属性)。Getters接收state作为其第一个函数
  getters: {
    ...
  },
  actions: { 
    ...
  }
})
// 要改变状态值只能通过提交mutations来完成

/* eslint-disable no-new */
new Vue({
  el: '#app',
  template: '<App/>',
  components: { App },
  // 将store实例注入到根组件下的所有子组件中
  store
  // 子组件通过this.$store来方位store
})

##3.核心概念
###1. state
state就是全局的状态(数据源),我们可以用以下方式在Vue 组件中获得Vuex的state状态
template

<div>
    {{ $store.state.count }}
</div>

script

console.log(this.$store.state.count)

###getters
getters其实可以认为是 store 的计算属性,用法和计算属性差不多。
定义getter:

getters: {
    done(state) {
      return state.count + 5;
    },
}

使用getter

console.log(this.$store.getters.done)

###3.mutations
mutations是操作state的唯一方法,即只有mutations方法能够改变state状态值。
####3.1 基本操作
mutations对state的操作

const store = new Vuex.Store({
  state: {
    count: 1
  },
  mutations: {
    increment (state) {
      // 变更状态
      state.count++
    }
  }
})

组件通过commit提交mutations的方式来请求改变state

this.$store.commit('increment')

这样的好处是我们可以跟踪到每一次state的变化,以便及时分析和解决问题。
####3.2 提交载荷(Payload)
mutations方法中是可以传参的,具体用法如下:

  mutations: {
    // 提交载荷 Payload
    add(state, n) {
      state.count += n;
    }
  },

使用:

this.$store.commit('add', 10);

这里只是传了一个数字,在大多数情况下,载荷应该是一个对象,这样可以包含多个字段并且记录的 mutation 会更易读。
####3.3 注意
m u t a t i o n s 方 法 必 须 是 同 步 方 法 ! \color{red}{mutations方法必须是同步方法!} mutations方法必须是同步方法!
##4. actions

###4.1 基本操作
之前说mutations方法必须只能是同步方法,为了处理异步方法,actions出现了。关于action和mutations的区别有以下几点

  • Action 提交的是 mutation,而不是直接变更状态。
  • Action 可以包含任意异步操作。
  • Action 还是得通过 mutation 方法来修改state
    同样是之前的increment方法,我们分别用同步和异步的action来验证上面所说的与mutations的不同之处:
actions: {
    increment (context) {
      context.commit('increment')
    },
    incrementAsync (context) {
      // 延时1秒  
      setTimeout(() => {
        context.commit('increment')
      }, 1000)
    }
},

不同于mutations使用commit方法,actions使用dispatch方法。

this.$store.dispatch('incrementAsync');

###4.2 context
context是与store实例具有相同方法和属性的对象。
可以通过context.state和context.getters来获取 state 和 getters。
###4.3 以载荷形式分发

incrementAsyncWithValue (context, value) {
      setTimeout(() => {
        context.commit('add', value)
      }, 1000)
}

使用:

this.$store.dispatch('incrementAsyncWithValue', 5);

##5. module
使用单一状态树,导致应用的所有状态集中到一个很大的对象。但是,当应用变得很大时,store 对象会变得臃肿不堪。
为了解决以上问题,Vuex 允许我们将 store 分割到模块(module)。每个模块拥有自己的 state、mutation、action、getters、甚至是嵌套子模块——从上至下进行类似的分割:

const moduleA = {
  state: { ... },
  mutations: { ... },
  actions: { ... },
  getters: { ... }
}

const moduleB = {
  state: { ... },
  mutations: { ... },
  actions: { ... }
}

const store = new Vuex.Store({
  modules: {
    a: moduleA,
    b: moduleB
  }
})

store.state.a // -> moduleA 的状态
store.state.b // -> moduleB 的状态

module 更多相关https://vuex.vuejs.org/zh/guide/modules.html
引用 知乎 https://www.jianshu.com/p/d6f7e11f18af

详解vuex中action何时完成以及如何正确调用dispatch的思考 主要介绍了详解vuex中action何时完成以及如何正确调用dispatch的思考,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 立即下载

相关推荐

通俗易懂的图解二叉搜索树、AVL树和红黑树

搜索是一种很常见的需求,当数据较多时,如何找到目标对象时,即需要搜索查找。 那么如何快速找到目标呢,最朴素的思想就是暴力查找,一个一个对比。 显然,当数据量增大时,我们需要优化查找方法获取更快的查找速度,我们可以通过维护一个有序数组,从而实现二分查找,查找速度从O(n)降为O(longn)。 但是数组并不便于插入和删除,链表便成为了最好的选择。 既然是采用二分查找,那么不如直接按照查找的步骤维护一种数据结构,于是二叉搜索树出现了。 二叉搜索树的性质为: 若左子树不为空,则左子树上所有节点值都小于根结点值;

暗色光的博客 758

vuex的commit和dispatch

Vuex的dispacth和commit

weixin_44096391的博客 9156

Zephyr RTOS -- 学习笔记总述

文章目录摘要1. 开发基础部分2. 内核服务入门 本笔记基于 Zephyr 版本 2.6.0-rc2 摘要 1. 开发基础部分 2. 内核服务入门 2.1 线程简介 2.2 线程 2.3 工作队列线程 2.4 调度 2.5 中断 2.6 轮询 API 2.7 信号量

思想给了我们太多的自由,而我们拖累了思想...... 4826

vuex 中dispatch 和 commit

需要注意的是,在 Vuex 中,actions 中不能直接修改 state 的状态,只能通过触发 mutations 来修改 state 的状态。方法用于触发 mutations,它接收一个 mutation 的 type 和 payload 作为参数。都是用于触发 Vuex 中的 actions 和 mutations 的方法,但是它们的作用和用法略有不同。方法用于触发 actions,它接收一个 action 的 type 和 payload 作为参数。需要注意的是,在组件中使用。

weixin_55932347的博客 1696

【具身算法】VLA算法-Diffusion Policy

《扩散策略:多模态机器人控制的新方法》摘要 本文提出了一种基于扩散模型的机器人控制策略(DiffusionPolicy),用于解决视觉运动控制中的多模态行为、高维动作空间和训练稳定性问题。该方法利用去噪扩散概率模型(DDPM)生成动作序列,通过迭代优化处理复杂动作分布,显著提升了性能。实验表明,在15项机器人操作任务中,扩散策略平均性能提升46.9%,有效解决了传统显式/隐式策略的局限性。其核心优势在于:1)优雅建模多模态动作分布;2)适应高维动作空间;3)训练过程稳定。未来工作将探索与强化学习的结合及计算

puzhinan7781的博客 1391

鲁棒优化入门(6)—Matlab+Yalmip两阶段鲁棒优化通用编程指南(上)

Matlab+Yalmip两阶段鲁棒优化通用编程指南(上篇),内容包括: ①.拿到一个复杂的两阶段鲁棒优化问题的分析步骤和方法。 ②.采用Yalmip工具箱中的uncertain函数和鲁棒优化模块求解两阶段鲁棒优化的子问题。 ③.Yalmip工具箱中的鲁棒优化模块和常规的求解思路有什么异同。 ④.使用KKT条件求解两阶段鲁棒优化的子问题,并使用C&CG算法进行迭代求解。

配电网和matlab的博客 1万+

Vuex中dispatch和Commit的区别

Vuex中dispatch和Commit的区别

H_jrqn的博客 520

【高级-RAG-优化方法】

本文介绍了两种优化RAG(检索增强生成)系统的高级方法。第一部分介绍KnowFlow项目,它采用父子分块技术,将文档分为父分块(800-1500字符)和子分块(200-400字符),通过精确匹配子分块再返回父分块内容来保证搜索精确性和上下文完整性。第二部分探讨Milvus的多种增强技术,包括查询增强(如假设问题生成、回溯提示)、索引增强(自动合并块、分层索引)、检索器增强(句子窗口检索、元数据过滤)、生成器增强(提示压缩、块排序)以及管道增强(自我反省、代理查询路由)。这些方法共同提升了RAG系统的检索效率

weixin_48585108的博客 960

Vue的存储和取值方法

commit:同步操作 存储 this.$store.commit(‘changeValue’,name) 取值 this.$store.state.changeValue dispatch:异步操作 存储 this.$store.dispatch(‘loginValue’,name) 取值 this.$store.loginValue 总结:两者只是存取方式不同,两个都是传值给vuex的mutation改变state ...

weixin_44302580的博客 2131

基于Arduino UNO的OLED显示器使用方法x2(Arduino系列五)

Arduino使用OLED显示模块可以实现串口数据显示,还可以与其他模块联合使用,实现实时显示开发板实时数据。

LNN0212的博客 4172

【C#程序员入门AI】AI应用的操作系统:Semantic Kernel 2026实战

用户ID用户信息

人工智能AI技术 1251

Vuex中commit和dispatch的核心区别

Vuex中commit和dispatch的核心区别:commit用于同步调用mutations修改state(唯一合法方式),dispatch用于异步调用actions处理逻辑后再commit修改state。commit必须同步执行,而dispatch可处理异步操作。关键规则:mutations中不能包含异步代码,actions不能直接修改state。使用场景:同步状态修改用commit,包含异步逻辑的状态变更用dispatch。两者共同构成了Vuex规范化的状态管理机制。

m0_74004373的博客 995

28_Spring AI 干货笔记之 OpenAI 聊天功能

本文详细介绍了在Spring AI框架中集成OpenAI聊天模型的方法。内容涵盖API密钥配置、通过starter依赖启用自动配置、连接与模型参数的详细设置,并重点说明了运行时选项的动态覆盖机制。文章还深入讲解了多模态处理(图像与音频)、结构化输出、函数调用等高级功能,提供了示例控制器和手动配置指南,并讨论了与OpenAI兼容服务器的适配与推理模型思维链的获取。

在科技的浪潮中,我们寻找着创新的火种,在代码的海洋里,我们编织着智慧的网。腾飞开源,就是这样一个由技术精英汇聚而成的博客平台,我们致力于分享在Java、Python、IoT和人工智能等领域的最新研究成果和实战经验。 在腾飞开源的博客上,你会看到紧跟技术前 1657

vuex的学习

vuex的初始学习 安装 首先是先在vue 项目中下载vue 显示出来的是这样的 如果不放心可以去package.js中查看如果显示: vuex:"^版本号" 实战 在正常的vue项目中是没有vuex所需的文件的。所以需要自己建立一个目录在src,在中建立一个名为store的目录,然后在建立一个index的js文件 然后实战操作一下: 在index文件需要将vue和vuex引用一下 然后利用const声明一个常量store,并且导出常量store 然后我们在main.js文件中引入该文件,在文件里面添加

fdbyd的博客 259

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Vuex学习笔记

1.state 定义全局变量的地方,可以在组件中直接使用this.$store.state.count的方式获取 --------------------------------------------------------------------------------------- 也可以通过import {mapState} from 'vuex' computed:{...mapState(['count'])} 2.mutation 用于变更state中的数据(可以集中监控数据

qq_40997700的博客 165

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

vuex学习网址

vuex不用看其他教程,官网指南写的特别清晰 网址: https://vuex.vuejs.org/zh/guide/

mao_mao37的博客 331

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

VUE之vuex学习实例

vuex的学习例子         最近在学习vuejs,一直有听说vuex,用来实现多组件共享的一种状态管理模式,但是网上都说,不要为了用vuex而用vuex,大概意思就是尽量少用vuex,一些小项目可以用bus来实现组件之间的传值问题。虽然说不用vuex,但至少要知道这是个什么东西吧?还要学会怎么用。趁现在有点时间,弥补自己的不足。一些概念性的东西,还是看官方文档吧。Vuex2.0。 我们...

Djj_Alice的博客 380

Vuex的学习笔记一:认识Vuex和引入,小白看完都学会了

从上图中可以看到,不使用Vuex的项目,通过父子和兄弟之间传值实在太麻烦,看着眼都花了,更何况还要用代码来实现,肯定不好开发和维护;再看看使用Vuex的项目,只需要把组件需要共享的数据保存到Vuex中,别的组件需要可以直接获取,不需要第三方中介,一目了然,便于开发和维护;以上方法虽然可以解决一些组件之间的数据共享,小范围组件之间还可以,一旦涉及到多人开发的大项目和大范围组件之间数据共享就不太方便,所以我们就不得不再认识个新朋友(Vuex)来帮助我们。能够高效的实现组件之间的数据共享,提高开发效率;

2401_84182936的博客 919

Vue第六天学习总结—— Vue全家桶之Vuex(Vuex概述、Vuex的基本使用、Vuex的核心概念、基于Vuex的案例)

(一) Vuex概述 1.组件之间共享数据的方式 父向子传值:v-bind属性绑定 子向父传值:v-on 事件绑定 兄弟组件之间共享数据: EventBus $on接收数据的那个组件 $emit发送数据的那个组件 之前共享数据,是通过以上方式 以上方式,只适用于小范围内传递数据 2.Vuex Vuex 是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间数据的共享 没有vuex时:A向B传递数据,需要一一传递,非常麻烦 有vuex时,A直接将要共享的数据,存储到Store中,然后B直接从S

weixin_52819925的博客 1131

学习Vuex

今天在找东西学习,想起vuex貌似用的挺多的,但是自己却没怎么用到,就打开官方文档看了一下,但是没有什么使用经验,总觉得简单的东西看不懂,于是就去谷歌找了一下教程,找到掘金上的一位大神录的视频,虽然讲的东西都很基础,但是一听就懂,记录链接:https://juejin.im/entry/59191b6b0ce4630069f6a3ad vuex就是为了解决同一个状态多处引用,担心状态不统一...

u014477038的专栏 232

Vue学习笔记集--Vuex

在 Vuex store 中定义 state,state 是一个对象,用于存储应用的状态数据。state: {count: 0,todos: [})在 Vuex store 中定义 Mutations。Mutations 是一个对象,其中的每个属性是一个函数,这些函数接收 state 作为第一个参数,或者通过参数解构来获取 state 和其他上下文信息。state: {count: 0,todos: []},// 简单的 mutation},// 带参数的 mutation},

Three_stones的博客 1210

vuex 学习总结

算是学习记录VUE以及项目中使用的地方 vue 的全家桶已经不再是难的技术,视乎成为前端开发人员必备的技能之一了,公司项目很早就从jQuery 转换成VUE React等,记录学习也是自我的进步。 文章目录算是学习记录VUE以及项目中使用的地方安装、一、state二、Getter三、 Mutation四、 Action五、 Module(暂时没有去使用) 安装、 提示:这里可以添加本文要记录的大概内容: npm install vuex --save 通过 Vue.use() 来安装 Vuex im

cyadyx的博客 277

Vuex 学习总结

1.Vuex概述 Vuex是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间的数据共享 使用Vuex管理数据的好处: 能够在vuex中集中管理共享的数据,便于开发和后期进行维护 能够高效的实现组件之间的数据共享,提高开发效率 存储在vuex中的数据是响应式的,当数据发生改变时,页面中的数据也会同步更新 Vuex 使用时的注意事项 不能直接改变 state 中的状态,唯一的修改途径是显式地提交 Mutation,这样方便追踪每一个变化,更利于后期代码的维护 2.核心概念 State Vu

m0_46502241的博客 249
上一篇: Nginx最基本最常用操作
下一篇: Vue.js中 watch用法
wen_binObject
博客等级 码龄10年 51粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值