01-计算属性基本使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<h2>{{firstName + ' ' + lastName}}</h2>
<h2>{{firstName}} {{lastName}}</h2>
<h2>{{getFullName()}}</h2>
<h2>{{fullName}}</h2>
</div>
<script src="../../js/vue.js"></script>
<script>
let app = new Vue({
el: '#app',
data: {
firstName: 'toolsss',
lastName: 'James'
},
computed: {
fullName: function (){
return this.firstName + ' ' + this.lastName
}
},
methods: {
getFullName(){
return this.firstName + ' ' + this.lastName
}
}
})
</script>
</body>
</html>
02-计算属性的复杂操作
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<h2>总价格: {{totalPrice}}</h2>
<h2>总价格: {{totalPrice1}}</h2>
<h2>总价格: {{totalPrice2}}</h2>
</div>
<script src="../../js/vue.js"></script>
<script>
let app = new Vue({
el: '#app',
data: {
books: [
{id: 1, name: 'Unix编程艺术', price: 119},
{id: 2, name: '代码大全', price: 120},
{id: 3, name: '深入理解计算机原理', price: 121},
{id: 4, name: '现代操作系统', price: 122},
]
},
computed: {
totalPrice: function (){
let result = 0
for (let i = 0; i < this.books.length; i++) {
result += this.books[i].price
}
return result
},
totalPrice1: function (){
let result1 = 0
for (let i in this.books) {
result1 += this.books[i].price
}
return result1
},
totalPrice2: function (){
let result2 = 0
for (let book of this.books) {
result2 += book.price
}
return result2
}
}
})
</script>
</body>
</html>
03-计算属性的getter和setter
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<h2>{{fullName}}</h2>
</div>
<script src="../../js/vue.js"></script>
<script>
let app = new Vue({
el: '#app',
data: {
firstName: 'bingo',
lastName: 'cheng'
},
computed: {
fullName: {
get: function (){
return this.firstName + ' ' + this.lastName
},
set: function (newValue){
const names = newValue.split(' ');
this.firstName = names[0]
this.lastName = names[1]
}
}
}
})
</script>
</body>
</html>
04-计算属性和methods的对比
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<h2>{{fullName}}</h2>
<h2>{{fullName}}</h2>
<h2>{{fullName}}</h2>
<h2>{{fullName}}</h2>
<h2>{{getFullName()}}</h2>
<h2>{{getFullName()}}</h2>
<h2>{{getFullName()}}</h2>
<h2>{{getFullName()}}</h2>
</div>
<script src="../../js/vue.js"></script>
<script>
let app = new Vue({
el: '#app',
data: {
firstName: 'bingo',
lastName: 'cheng'
},
computed: {
fullName: {
get: function (){
console.log('fullName');
return this.firstName + ' ' + this.lastName
},
set: function (newValue){
const names = newValue.split(' ');
this.firstName = names[0]
this.lastName = names[1]
}
}
},
methods: {
getFullName: function (){
console.log('getFullName');
return this.firstName + ' ' + this.lastName
}
}
})
</script>
</body>
</html>