分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Vue.js 基础学习计算属性computed

发布时间:2023-09-06 01:08责任编辑:彭小芳关键词:js

我们要写一个成绩表如下

数学90
物理80
英语70
<div id="app"><table border="1"><tr><td>数学</td><td>{{ math }}</td></tr><tr><td>物理</td><td>{{ physics }}</td></tr><tr><td>英语</td><td>{{ english }}</td></tr></table></div>
var app = new Vue({ ???????el : ‘#app‘, ???????data : { ???????????math : 90, ???????????physics : 80, ???????????english : 70, ???????} ???});

接下来我们要添加总分和平均分,

<tr> ???????????????<td>总分</td> ???????????????<td>{{math + physics + english}}</td> ???????????</tr> ???????????<tr> ???????????????<td>平均分</td> ???????????????<td>{{ Math.round((math + physics + english)/3) }}</td> ???????????</tr>

这时我们在td中加的东西很多,这样很不好,这时Vue提供了一个计算属性computed

为了方便观察我们同时将tr中的内容换成input来观察动态变化

<div id="app"> ???????<table border="1"> ???????????<tr> ???????????????<td>数学</td> ???????????????<td><input type="text" v-model="math"></td> ???????????</tr> ???????????<tr> ???????????????<td>物理</td> ???????????????<td><input type="text" v-model="physics"></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> ???????</table> ???</div>
var app = new Vue({ ???????el : ‘#app‘, ???????data : { ???????????math : 90, ???????????physics : 80, ???????????english : 70, ???????}, ???????computed : { ???????????sum : function(){ ???????????????return this.math + this.physics + this.english; ???????????}, ???????????average : function() { ???????????????return Math.round(this.sum/3); ???????????} ???????} ???});

在app中加入computed 这时我们就可以动态的观察各科分数改变总分和平均分对应改变,但是由于input中输入内容会被自动转换成字符串类型,所以我们应该保证它是number类型,我们可以使用v-model的number修饰符,也可以在数据上进行处理,v-model上加修饰符就不说了,在computed中的sum对应的方法中给每个数据加一个parseFloat转换为number,

computed : { ???????????sum : function(){ ???????????????return parseFloat(this.math) + parseFloat(this.physics) + parseFloat(this.english); ???????????}, ???????????average : function() { ???????????????return Math.round(this.sum/3); ???????????} ???????}

这时,改变各科成绩就可以看到总分平均分对应的改动了。

Vue.js 基础学习计算属性computed

原文地址:http://www.cnblogs.com/huzhuo/p/7469872.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved