Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用vue js检查组件中的数据是否自行更改?_Javascript_Methods_Vue.js_Components - Fatal编程技术网

Javascript 如何使用vue js检查组件中的数据是否自行更改?

Javascript 如何使用vue js检查组件中的数据是否自行更改?,javascript,methods,vue.js,components,Javascript,Methods,Vue.js,Components,我有一种改变数据本身的方法,简单的例子是: Vue.component('component', { template: '#component', data: function () { return { dataToBeWatched: '' } }, methods: { change: function (e) { var that = this; setTimeOut(function() {

我有一种改变数据本身的方法,简单的例子是:

Vue.component('component', {
  template: '#component',
  data: function () {
    return {
      dataToBeWatched: ''
    }
  },
  methods: {
    change: function (e) {
      var that = this;
      setTimeOut(function() {
        that.dataToBeWatched = 'data changed';
      }, 2000);
    },
    makeSmthWhenDataChanged: function () {
      // ajax request when dataToBeWatched changed or when dataToBeWatched isn't empty
    }
  }
});
如何使用vue js的正确方法创建这样的观察者?
或者我需要使用道具在组件中观察它?

Vue组件可以具有作为对象的
watch
属性。对象键需要是需要监视的道具或数据的名称,值是数据更改时调用的函数


非常感谢,我知道这应该很简单!
Vue.component('component', {
  template: '#component',
  data: function () {
    return {
      dataToBeWatched: ''
    }
  },
  methods: {
    change: function (e) {
      var that = this;
      setTimeOut(function() {
        that.dataToBeWatched = 'data changed';
      }, 2000);
    },
    makeSmthWhenDataChanged: function () {
      // ajax request when dataToBeWatched changed or when dataToBeWatched isn't empty
    }
  },
  watch: {
      dataToBeWatched: function(val) {
          //do something when the data changes.
          if (val) {
              this.makeSmthWhenDataChanged();
          }
      }
  }
});