javascript - 从VueJS中的api获取数据时如何添加加载器?
问题描述
我创建了一个 VueJS/Vuex 应用程序来从 API 获取数据并将此数据显示在另一个页面上,该站点的逻辑是用户单击按钮以在first
页面上获取数据但此数据必须显示在另一个页面上,
这是我的代码:
data.js
import axios from 'axios';
const state = {
data: ''
};
const getters = {
getData: (state) => {
return state.data;
}
};
const actions = {
async fetchData({ commit }, { id }) {
const response = await axios.get(`http://someUrl?id=${id}`);
console.log(response.data);
commit('setData', response.data);
}
}
const mutations = {
setData: (state, data) => (state.data = data)
}
export default {
state, getters, actions, mutations
}
我要获取此数据的 Vue 文件:
<script>
import FooterComponent from "@/components/Footers/Footer.vue";
import { mapGetters, mapActions } from 'vuex';
export default {
data() {
return {
id: ""
}
},
name: "Index",
methods: {
...mapActions(["fetchData"]),
launchFetchData() {
this.fetchData({ id: this.id})
this.$router.push("login");
}
},
computed: mapGetters(["getData"])
}
</script>
那么,如何通过状态检查数据是否已正确下载以及数据已正确下载时如何重定向到相应的页面?以及如何在下载数据时添加简单的加载器?
谢谢你的帮助
解决方案
我不确定,但你能试试这个吗?
<script>
import FooterComponent from "@/components/Footers/Footer.vue";
import { mapGetters, mapActions } from 'vuex';
export default {
data() {
return {
id: "",
data: null
}
},
name: "Index",
methods: {
launchFetchData() {
try {
...mapActions(["fetchData"]),
this.fetchData({ id: this.id})
this.data = mapGetters(["getData"])
this.$router.push("login");
} catch (error) {
console.log(error)
}
}
},
mounted()
this.launchFetchData()
}
</script>
推荐阅读
- r - 如果我使用“holdout”重采样,如何访问训练集的度量(例如:“classif.acc”或其他度量)?
- swift - forEach 自动布局约束未出现
- python - 具有不同量词的正则表达式捕获组
- python-3.x - 如何在 py 文件中提取函数的文档字符串?
- git - 有人在 Intellij 2020.2 中遇到与 Git 相同的问题吗?
- javascript - 在javascript中将运算符放在alert()中
- reactjs - 反应路由器路由半动态?
- angular - 找不到模块'@angular/cdk/clipboard
- c - pthread_join 后局部变量值不正确
- javascript - Angular - 当表单无效时在提交时显示错误消息