如何在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对象中创建计算/可观察属性?
答案 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;
}
}
});