“完全重新加载”Vue/Nuxt组件

zi8p0yeb  于 2023-08-07  发布在  Vue.js
关注(0)|答案(2)|浏览(180)

我知道this.$forceUpdate()是如何工作的,而不是试图重新渲染组件。

在Nuxt应用中,页面组件的生命周期方法是asyncData(),在created()之前执行。我用它来获取一些初始数据并进行SSR分析。
我想重新加载组件的原因是在修改组件内部的相应数据后再次获取数据,使用 AJAX 。我尝试了this.$forceUpdate()以防万一,但没有工作。this.$router.replace(this.$route.path)也不行。我试图不使用location.reload(),因为我有一个吐司词的消息应该在修改后显示。
有没有办法做到这一点?或者我应该把抓取部分移到fetch()并调用this.$fetch()吗?

o8x7eapl

o8x7eapl1#

this.$nuxt.reload()就是那个东西。不确定它是否存在于Vue本身。

wmvff8tz

wmvff8tz2#

我认为Nuxt 3有一种方法可以做到这一点,那就是refreshNuxtData。docs说:
refreshNuxtData从服务器重新获取所有数据并更新页面,并使useAsyncData,useLazyAsyncData,useFetch和useLazyFetch该高速缓存无效。

相关问题