VueJs 如何创建具有可观察属性的对象
VueJs How to create object with observable properties
如何在 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 对象中创建 computed/observable 属性?
是的,在 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;
}
}
});
如何在 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 对象中创建 computed/observable 属性?
是的,在 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;
}
}
});