我知道this.$forceUpdate()
是如何工作的,而不是试图重新渲染组件。
在Nuxt应用中,页面组件的生命周期方法是asyncData()
,在created()
之前执行。我用它来获取一些初始数据并进行SSR分析。
我想重新加载组件的原因是在修改组件内部的相应数据后再次获取数据,使用 AJAX 。我尝试了this.$forceUpdate()
以防万一,但没有工作。this.$router.replace(this.$route.path)
也不行。我试图不使用location.reload()
,因为我有一个吐司词的消息应该在修改后显示。
有没有办法做到这一点?或者我应该把抓取部分移到fetch()
并调用this.$fetch()
吗?
2条答案
按热度按时间o8x7eapl1#
this.$nuxt.reload()
就是那个东西。不确定它是否存在于Vue本身。wmvff8tz2#
我认为Nuxt 3有一种方法可以做到这一点,那就是refreshNuxtData。docs说:
refreshNuxtData从服务器重新获取所有数据并更新页面,并使useAsyncData,useLazyAsyncData,useFetch和useLazyFetch该高速缓存无效。