先用官网里面的范例
<div id="example">
<p>Original message: "{{ message }}"</p>
<p>Computed reversed message: "{{ reversedMessage }}"</p>
</div>
var vm = new Vue({
el: '#example',
data: {
message: 'Hello'
},
computed: {
// a computed getter
reversedMessage: function () {
// `this` points to the vm instance
return this.message.split('').reverse().join('')
}
}
})
这个范例,可以说到 Day5 这个生命周期。
<p>Reversed message: "{{ reverseMessage() }}"</p>
// in component
methods: {
reverseMessage: function () {
return this.message.split('').reverse().join('')
}
}
computed 这两种方式其实都可以,但在
computed: {
now: function () {
return Date.now()
}
}
这两个范例,method都会重新渲染,但为什麽要使用computed caching,有时会有大量运算的array。如果不使用,getter将会超过预定次数。
<div id="demo">{{ fullName }}</div>
var vm = new Vue({
el: '#demo',
data: {
firstName: 'Foo',
lastName: 'Bar',
fullName: 'Foo Bar'
},
watch: {
firstName: function (val) {
this.fullName = val + ' ' + this.lastName
},
lastName: function (val) {
this.fullName = this.firstName + ' ' + val
}
}
})
这边有重复的function,可以把它拆到computed里面
var vm = new Vue({
el: '#demo',
data: {
firstName: 'Foo',
lastName: 'Bar'
},
computed: {
fullName: function () {
return this.firstName + ' ' + this.lastName
}
}
})
另外一个是如何做Computed的设定?
如果不特别设定都会是 getter-only
// ...
computed: {
fullName: {
// getter
get: function () {
return this.firstName + ' ' + this.lastName
},
// setter
set: function (newValue) {
var names = newValue.split(' ')
this.firstName = names[0]
this.lastName = names[names.length - 1]
}
}
}
// ...
不知道该写什麽以後再补
>>: 有关Wscript.exe *.vbs 的中文字编码( utf-8)问题
前言 这篇还是要继续来介绍jconsole,Thread的页签介绍 Step.1 首先准备一个Jco...
前言 很感谢各位进来观看本人的铁人赛,会想写关於JavaScript主题主要是学习了一段时间,透过参...
什麽是 Wavelength? Wavelength 将 5G 网路的高频宽和超低延迟与 AWS 运...
继昨天的实作练习,有相机,会执行以下的程序码: 令 vc 为 UIImagePickerContro...
昨天加班加的凶, 到现在为止都还在挑灯夜战, 不过,在不景气的日子人就要想着变通, 才会有机会的到来...