Vue.js火速上手第八章——vue的计算属性

一、需求分析

现要做三个单科成绩、总分、平均分的展示

            <table border="2">
				<thead>
				<th>科目</th>
				<th>分数</th>			
				</thead>
				<tbody>
				<tr>
					<td>数学</td>
					<td><input type="text" v-model="math" /></td>
				</tr>
				<tr>
					<td>语文</td>
					<td><input type="text" v-model="chinese" /></td>
				</tr>
				<tr>
					<td>英语</td>
					<td><input type="text" v-model="english" /></td>
				</tr>
				<tr>
					<td>总分</td>
					<td>{{sum}}</td>
				</tr>
				<tr>
					<td>平均分</td>
					<td>{{average}}</td>
				</tr>
				</tbody>
			</table>
var app=new Vue({
		el: '#app',
		data:{
			math: 88,
			chinese: 86,
			english: 86,
		},
		computed:{
			sum:function(){
				return this.math+this.chinese+this.english;
			},
			average:function(){
				return this.sum /3;
			},
		},
});

二、初始效果

三、优化四舍五入

			average:function(){
				return Math.round(this.sum /3);
			},

四、优化字符串乱码

  如在前台修改数据,有可能出现以下乱码

这是由于字符串没有数字类型

有两种方式可以防止此现象

1、在前台加v-model.number

2、在js文件中转义parseFloat(this.math)

五、本章完整代码

index.html

<html >
	<head>
	    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>chapter18.7</title>
	</head>
	<body>		
		<div id="app">
			<table border="2">
				<thead>
				<th>科目</th>
				<th>分数</th>			
				</thead>
				<tbody>
				<tr>
					<td>数学</td>
					<td><input type="text" v-model.number="math" /></td>
				</tr>
				<tr>
					<td>语文</td>
					<td><input type="text" v-model.number="chinese" /></td>
				</tr>
				<tr>
					<td>英语</td>
					<td><input type="text" v-model.number="english" /></td>
				</tr>
				<tr>
					<td>总分</td>
					<td>{{sum}}</td>
				</tr>
				<tr>
					<td>平均分</td>
					<td>{{average}}</td>
				</tr>
				</tbody>
			</table>
		</div>
		<script src="lib/vue.js"></script>
		<script src="js/main.js"></script>
	</body>
</html>

main.js

var app=new Vue({
		el: '#app',
		data:{
			math: 88,
			chinese: 86,
			english: 86,
		},
		computed:{
			sum:function(){
				return this.math+this.chinese+this.english;
			},
			average:function(){
				return Math.round(this.sum /3);
			},
		},
});

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值