vuex异步获取数据_vuex起步 (三、异步管理数据)

本文介绍了如何在Vuex中处理异步数据,包括使用axios发送请求、在actions中派发action、在mutations中更新state,以及通过getters进行数据筛选。同时,讨论了使用loading状态优化用户体验,通过缓存避免重复请求,并展示了如何通过常量优化代码。
摘要由CSDN通过智能技术生成

异步管理数据就是有发请求,我们这里异步请求用axios,这个也是第三方的库,所以我们要在当前项目yarn add axios或者npm i axios,然后再store.js文件里面导入

import axios from 'axios'

在来到组件文件里面的template组件这里添加一个事件触发源

获取电影

然后再export default这里派发一个action

clickHandler: function () {

// 获取异步数据 希望通过仓库进行 异步数据的管理

this.$store.dispatch('getMovie'); // 派发 action 。 同步:commit,异步 action

}

然后异步请求不能在store.js的 mutations里面修改数据咯,要在const store = new Vuex.Store先加一个action

actions: {

getMovie: function (store, payload) {

var url = 'https://movie.52kfw.cn/index.php/Api/Movie/alst?page=1&size=20';

axios.get(url).then(response => {

console.log(response);

if( response.status === 200 && response.data.error_code === 0 ){

// 把返回的数据交给仓库里面的 state 里面的 movieData

// response.data.result;

// 当前 store 对象

store.commit('saveMovieData', response.data.result);

}

}).catch( error => {

console.log(error);

})

console.log('getMovie');

}

},

如上里面也有 store.commit('saveMovieData', response.data.result);response.data.result就是要传过去的payload值

因为把返回的数据交给仓库里面的 state 里面的 movieData,所以事先要在state里面定义一下

state:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值