VueJs如何使用可观察属性创建对象

时间:2016-08-21 13:25:11

标签: javascript knockout.js vue.js vue-component

如何在VueJS中创建等效的knockoutjs ViewModel?例如:

var Person = function() { 
    var self = this;
    this.firstName = ko.observable('');
    this.lastName = ko.observable('');
    this.fullName = ko.computed(
    function() { 
        return self.firstName() + ' ' self.lastName();
    });

与VueJs相同的是,如何在没有模板属性的情况下创建对象或视图模型,而不将其创建为组件?我是否只是创建普通的javascript对象(function / json对象),如果是这样,我如何在那些普通的javascript对象中创建计算/可观察属性?

1 个答案:

答案 0 :(得分:1)

是的,在Vue,模特只是一个pojo。使用其computed成员建立计算属性。以下是针对您的用例修改的docs的示例:

var vm = new Vue({
  el: '#aPerson',
  data: {
    firstName: '',
    lastName: ''
  },
  computed: {
    fullName: function () {
      return this.firstName + ' ' + this.lastName;
    }
  }
})

接受person对象的可重用组件如下所示:

Vue.component('person', {
  props: ['person'],
  computed: {
    fullName () {
      return this.firstName + ' ' + this.lastName;
    }
  }
});