小编ven*_*nom的帖子

Vue.js - 观察对象的特定属性并在更改时加载数据

我有一个带有名为 prop 的 Vue 组件product,它是一个具有一堆属性的对象。而且它经常变化。

export default {
    props: {
        product: {
            type: Object,
            default: () => {},
        },
    },
    watch: {
        'product.p1'() {
            this.loadData()
        },
        'product.p2'() {
            this.loadData()
        },
    },
    methods: {
        loadData() {
            doApiRequest(this.product.p1, this.product.p2)
        }
    },
}
Run Code Online (Sandbox Code Playgroud)

p1当仅属性和p2of product发生更改时,组件应加载新数据。一种方法是观察整个产品并在更改时加载数据。但它会产生不必要的请求,因为p1p2可能没有改变。

另一个想法是 watchproduct.p1product.p2,并调用相同的函数在每个观察器中加载数据。但有可能在新版本的产品中两者p1都发生了变化,会触发2次调用。p2

使用去抖函数进行数据加载会是一个好的解决方案吗?

或者更确切地说,对整体使用单个观察程序product,并将新的p1p2字符串化的版本与旧的字符串化版本进行比较,以确定是否应该触发数据加载?

javascript watch vue.js vuejs2

10
推荐指数
1
解决办法
7873
查看次数

标签 统计

javascript ×1

vue.js ×1

vuejs2 ×1

watch ×1