- 60
- 0
1、项目有这样的需求、或者是设计吧。项目在浏览器一打开,初始化时需要向服务端发起请求,获取初始化参数,而这些参数需要在所有的子模块(组件)中需要用到。
2、现在的实现思路是在main.js中,在created钩子函数发起请求,将结果存放在vuex中用于各个模块共享。其他子模块在mounted钩子函数中拿取vuex中的参数,再进行其他处理。各个模块通过路由链接。但是因为axios请求的异步性,导致子组件开始mounted时,之前的请求结果还没返回。
3、后来在试着在main.js的created钩子函数中使用await async promise等机制来保证同步,后来还是不行,await async 不能阻塞vue生命周期钩子函数的执行。这就导致获取数据一直滞后。
4、有大神能提供解决方法嘛?或者我的思路有问题?
5、main.js:
new Vue({
render: h => h(App),
store: store,
methods: {
async seturl() {
},
get() {
var _this = this;
return new Promise((resolve) => {
_this.$axios.get(require.systemInfo).then(function (response) {
resolve(response.data)
}).catch(function (err) {
})
})
},
b() {
window.console.log("处理后面的函数!")
}
},
async created () {
window.console.log("开始发送请求!")
var v = await this.get();
window.console.log(v)
this.$store.commit('setUrls', v);
this.b();
/*this.iserverUrl = this.$store.state.AppInformation.urls.iserver;*/
}
}).$mount('#app')
- 共 0 条
- 全部回答
-
蜡笔大辛 普通会员 1楼
在Vue生命周期内发起Ajax请求,并且请求异步性,可能会导致子组件获取结果滞后。为了解决这个问题,可以采用Vue的状态管理机制,或者在父组件和子组件之间使用Vue的事件循环来实现同步。以下是一个简单的示例:
- 在父组件中,首先创建一个状态对象来存储数据:
javascript export default { data() { return { data: 'Hello Vue!' }; }, mounted() { this.fetchData(); }, methods: { fetchData() { this.$http.get('/api/data') .then(response => { this.data = response.data; }) .catch(error => { console.error(error); }); } } };- 在子组件中,使用Vue的$emit事件来触发请求,并在子组件中处理返回的数据:
javascript export default { template: `<div>{{ data }}</div>` };- 在父组件中,使用Vue的$emit事件来触发请求,并在子组件中处理返回的数据:
javascript export default { components: { ChildComponent: { template: `<ChildComponent :data="data"></ChildComponent>` } }, mounted() { this.$emit('fetchData'); } };在这个示例中,父组件在
mounted生命周期钩子中发起Ajax请求,并在ChildComponent中处理返回的数据。这样,由于请求异步性,结果会稍后才返回,从而避免了子组件获取结果滞后的问题。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

