vue.js自学(D5)
04-计算属性
02计算属性的复杂操作
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<h2>{{message}}</h2>
<h2>总价格:{{totalPrice}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data:{
message:'你好啊',
books:[
{id:110, name: 'Unix编程艺术', price: 119},
{id:111, name: '代码大全', price: 105},
{id:112, name: '深入理解计算机原理', price: 98},
{id:113, name: '现代操作系统', price: 87},
]
},
computed:{
totalPrice(){
let result = 0;
for(let i = 0; i < this.books.length; i++){
result += this.books[i].price;
}
return result
}
}
})
</script>
</body>
</html>
03- 计算属性setter和getter(p23)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<h2>{{message}}</h2>
<h2>{{fullName}}</h2>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data:{
message:'你好啊',
firstName: 'Kobe',
lastName: 'Bryant'
},
computed:{
// fullName:function(){
// return this.firstName + ' ' + this.lastName
// }
//计算属性一般是没有set方法,只读属性。
fullName: {
set: function(newValue){
console.log('---',newValue);
const names = newValue.split(' ');
this.firstName = names[0];
this.lastName = names[1];
},
get: function(){
return this.firstName + ' ' + this.lastName
}
}
}
})
</script>
</body>
</html>
04-计算属性和methods对比
从实现方法上差不多,但是methods需要多次计算,而计算属性有缓存系统,性能更高。
(补充)ES6的语法
01-let/var
可以把let看成更加完美的var
作用域:
//变量作用域:变量在什么范围内是可用的。
var没有块级作用域,会引起很多问题。
for循环i是在括号里面定义的。然后var没有作用域概念,所以会干扰到其他作用域里的i。