温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Vuex状态管理之Action异步操作实例分析

发布时间:2022-08-10 16:55:57 来源:亿速云 阅读:207 作者:iii 栏目:编程语言

这篇文章主要介绍“Vuex状态管理之Action异步操作实例分析”,在日常操作中,相信很多人在Vuex状态管理之Action异步操作实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vuex状态管理之Action异步操作实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

action用法

一、 基本知识

1、不要再Mutation中进行异步操作.

但是某些情况, 我们确实希望在Vuex中进行一些异步操作, 比如网络请求, 必然是异步的. 这个时候怎么处理呢?

Action类似于Mutation, 但是是用来代替Mutation进行异步操作的.

Action的基本使用代码如下:

Vuex状态管理之Action异步操作实例分析

context是什么?

(1)context是和store对象具有相同方法和属性的对象.

(2)也就是说, 我们可以通过context去进行commit相关的操作, 也可以获取context.state等.

2、action的方法调用

在Vue组件中, 如果我们调用action中的方法, 那么就需要使用dispatch

Vuex状态管理之Action异步操作实例分析

同样的, 也是支持传递payload

Vuex状态管理之Action异步操作实例分析

3、Action与Promise

在Action中, 我们可以将异步操作放在一个Promise中, 并且在成功或者失败后, 调用对应的resolve或reject

Vuex状态管理之Action异步操作实例分析

Vuex状态管理之Action异步操作实例分析

二、 效果

页面中调用action中的方法

Vuex状态管理之Action异步操作实例分析

Vuex状态管理之Action异步操作实例分析

三、目录结构

Vuex状态管理之Action异步操作实例分析

四、源码

index.js

import { createStore} from 'vuex'


export default createStore({
	state: {
		counter: 0,
		info: {
		  name: 'kobe',
		  age: 40,
		  height: 1.98
		}
	},
	mutations: {
		updateInfo(state) {
		  state.info.name = 'coderwhy'
		}
	},
	actions: {
		aUpdateInfo(context, payload) {
		  return new Promise((resolve, reject) => {
		    setTimeout(() => {
		      context.commit('updateInfo');
		      console.log(payload);
		
		      resolve('1111111')
		    }, 1000)
		  })
		}
	},
	getters: { },
	modules: {}
})

App.vue

<template>
    <div >
        <h3>----------action: info对象的内容是否是响应式----------</h3>
        <h3>{{$store.state.info}}</h3>
        <button @click="updateInfo">修改信息</button>
    </div>
</template>
 
<script>
    import {    computed } from 'vue'
    import {    useStore } from 'vuex'
    export default {
        components: {
        },
        methods: {
            updateInfo() {
              this.$store.dispatch('aUpdateInfo', '我是携带的信息')
                .then(res => {
                  console.log('里面完成了提交');
                  console.log(res);
                })
            },
              
        },
        setup() {
            return {
                  
            }
        }
    }
</script>

到此,关于“Vuex状态管理之Action异步操作实例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI