我有一个Vue.js应用程序,我有几个组件,只是为了处理一些重复的任务.

我还从AJAX请求中获取数据.

我想要了解的是,在Vue数据(treeDataflatTreeData)更新并执行操作后,是否有触发的事件,以便我可以执行任何其他操作?

var app = new Vue({
    el: 'body',
    data: {
        treeData: {items: {}},
        flatTreeData: [],
    },
});

$.getJSON('./paths.json').done(function(data) {

    // apply the file structure to the vue app
    demo.treeData = data;

    demo.flatTreeData = flattenTree(data);

});

推荐答案

可以使用Vue实例的watch属性将侦听器添加到变量更改:http://vuejs.org/api/#watch

watch: {
    'treeData': function (val, oldVal) {
      console.log('new: %s, old: %s', val, oldVal)
    }
}

如果要对treeData这样的对象设置watch,可能需要使用deep标志来查看整个对象树.

watch: {
    'treeData':  {
        handler:function (val, oldVal){
            console.log('new: %s, old: %s', val, oldVal)
        },
        deep: true
    }
}

Vue.js相关问答推荐

无法在cPanel/SSH上构建 | Laravel + Vue优化

组合 API | Vue 路由参数没有被监视

Vue Js Composition Api 未定义(读取名称)

如何使用 vuejs 在浏览器 url 中获取当前 product.id 的详细信息

超出最大调用堆栈大小 - Vue路由

为什么我在 Vue npm run serve 的 localhost 中得到无法获取

即使响应为 200,也会调用 Axios Catch

Vuetify 置顶工具栏

使用 Vue.js (cdn) 在特定元素上切换显示/隐藏

Vuetify - 如何在 v-data-table 中单击时突出显示行

此 set-cookie 已被阻止,因为它具有 samesite=lax

取消选中单选按钮

为什么 v-model 不适用于数组和 v-for 循环?

在 .vue 文件中使用 Vue.set() 和 Vue.use()

在找不到图像源时设置替代图像

Vuejs - 使用 v-if 切换的保持活动组件

使用 Vue 在单个文件组件中调用渲染方法

如何设置 :id 前缀字符串?

Axios 请求拦截器在我的 vue 应用程序中不起作用

Vue.js 中的条件 依赖于props值?