Vue3:`props`的任何字段发生变化时,`computed`都会被求值,即使是未使用的字段

oyt4ldly  于 2023-03-24  发布在  Vue.js
关注(0)|答案(1)|浏览(303)

我有一个Vue3组件,有三个属性:

const props = defineProps<{
    begin: number,
    end: number,
    pos: number,
}>()

beginend用于从服务器获取数据,pos用于简单的可视化目的:

const url = computed(() => `...&begin=${begin}&end=${end}`)
const {data} = useFetch(url).json()

但是,每次更改pos参数时都会提取数据。
原则上,这可以通过监视器和手动字段比较来解决,但似乎非常麻烦。
防止不必要的抓取的最优雅的方法是什么?

xlpyo6sf

xlpyo6sf1#

它实际上是由你的useFetch引起的,而不是属性被刷新的原因。如果你的属性在你的计算中不起作用,它就不会刷新。
但是,如果你仍然想使用它,你可以在获取之前验证你的const {data}是否初始化良好,如果是这样,没有理由就不要重新获取。

相关问题