Vue.js 基礎學習計算屬性computed

來源:互聯網
上載者:User

標籤:var   average   code   改變   float   math   order   input   bsp   

我們要寫一個成績表如下

數學 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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.