import Vue from 'vue'
new Vue({
el: '#root',
template: `
<div>
<p>Name: {{name}}</p>
<p>Name: {{getName()}}</p>
<p>Number: {{number}}</p>
<p>FullName: {{fullName}}</p>
<p><input type="text" v-model="number"></p>
<p>FirstName: <input type="text" v-model="firstName"></p>
<p>LastName: <input type="text" v-model="lastName"></p>
<p>Name: <input type="text" v-model="name"></p>
<p>Obj.a: <input type="text" v-model="obj.a"></p>
</div>
`,
data: {
firstName: 'Jokcy',
lastName: 'Lou',
number: 0,
fullName: '',
obj: {
a: 0
},
// 对已有数据的拼装,监听后处理成新的数据
computed: {
name: {
get () {
console.log('new name');
return `${this.firstName} ${this.lastName}`
},
set (name) {
const names = name.split(' ');
this.firstName = names[0];
this.lastName = names[1]
}
}
},
watch: {
// 监听的数据
'obj.a': {
handler () {
console.log('obj.a changed');
this.obj.a += 1
},
// 绑定时立即执行
immediate: true
// 对引用类型进行监听
// deep: true
}
},
// computed 会缓存计算结果,只有数据发生改变时才会执行,methods每次都进行计算
methods: {
getName () {
console.log('getName invoked')
return `${this.firstName} ${this.lastName}`
}
}
});
3.5 computed和watch
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 2018.3.1 目标:身心健康,财富丰盛 好种子: 1早起健康早餐,种下健康的种子 2收拾家,回向女儿和众学子干...