您的位置:首頁技術文章
文章詳情頁

Vue計算屬性實現成績單

瀏覽:2日期:2023-02-16 14:54:17

本文實例為大家分享了Vue計算屬性實現成績單,供大家參考,具體內容如下

代碼如下:

<!DOCTYPE html><html> <head> <meta charset='utf-8'> <title>成績單統計</title> <script src='http://www.wxshucaidpc.com/bcjs/js/vue.js' type='text/javascript' charset='utf-8'></script> <style type='text/css'> .gridtable{ font-family:verdana, arial, sans-serif; font-size:11px; color:#333333; border-width: 1px; border-color:#666666; border-collapse: collapse; } .gridtable th{ border-width: 1px; padding:8px; border-style:solid; border-color:#666666; background-color: #dedede; } .gridtable td{ border-width: 1px; padding:8px; border-style:solid; border-color:#666666; background-color: #ffffff; } </style> </head> <body> <div id='app'> <table class='gridtable'> <tr> <th>學科</th> <th>分數</th> </tr> <tr> <td>語文</td> <td> <input type='text' name='' id='' value='' v-model.number='Chinese' /> </td> </tr> <tr> <td>數學</td> <td> <input type='text' name='' id='' value='' v-model.number='Math' /> </td> </tr> <tr> <td>英語</td> <td> <input type='text' name='' id='' value='' v-model.number='English' /> </td> </tr> <tr> <td>總分</td> <td> <input type='text' name='' id='' value='' v-model.number='sum' /> </td> </tr> <tr> <td>平均分</td> <td> <input type='text' name='' id='' value='' v-model.number='average' /> </td> </tr> </table> </div> <script> var vm=new Vue({ el:'#app', data:{ Chinese:100, Math:100, English:60 }, computed:{ sum:function(){ return this.Chinese+this.Math+this.English; }, average:function(){ return Math.round(this.sum/3); } }, }) </script> </body></html>

Vue計算屬性實現成績單

當我改變語文,數學·,英語的成績,總分和平均分會隨著實時變化,這就是Vue計算屬性的特點。

Vue計算屬性的傳參

計算屬性本質是一個方法,但是通常被當作一個屬性來使用,一般不加()。但在實際開發中,如果需要給計算屬性中的方法傳參,就需要使用閉包傳參的方法。

<!DOCTYPE html><html> <head> <meta charset='utf-8'> <title>Evaluate</title> <script src='http://www.wxshucaidpc.com/bcjs/js/vue.js' type='text/javascript' charset='utf-8'></script> <div id='app'> {{add(2)}} </div> <script type='text/javascript'> var vm =new Vue({ el:'#app', data:{ number:1 }, computed:{ add(){ return function(index){ return this.number+index; } } } }) </script> </head> <body> </body></html>

注意:

計算屬性本身不能像方法一樣在括號里填寫參數來達到傳參的目的,需要在該方法體里寫真正的方法,來接受參數。 同理,計算屬性方法體參數可省略,即本例子中add(){}和add(index){}均可計算屬性的getter和setter

計算屬性通常用來獲取數據(根據data的變化而變化),所以其默認只有getter,但需要時,Vue.js也提供setter功能。set方法與get方法先后順序無關,并且set方法接受的參數為get方法的返回值。

<!DOCTYPE html><html> <head> <meta charset='utf-8' /> <title>Computed</title> <script src='http://www.wxshucaidpc.com/bcjs/js/vue.js' type='text/javascript' charset='utf-8'></script> </head> <body> <div id='app'> firstName:<input type='text' name='' id='' value='' v-model='first'/> lastName:<input type='text' name='' id='' value='' v-model='last'/> <p>fullName:<input type='text' name='' id='' value='' v-model='fullName'/></p> </div> <script type='text/javascript'> var vm=new Vue({ el:'#app', data:{ first:'Jack', last:'Jones' }, computed:{ fullName:{ get:function(){ return this.first+' '+this.last }, set:function(parameter){ var names=parameter.split(' ') this.first=names[0] this.last=names[names.length-1] } } } }) </script> </body></html>計算屬性與方法的區別

使用計算屬性的這種方法可以確保代碼只在必要的時刻執行,適合處理一些潛在資源密集型工作。但是,如果項目不具有緩存功能,則要使用methods,要根據實際情況而定。

計算屬性的特點如下:

①當計算屬性的依賴發生變化時,會立即進行計算,并對計算結果進行自動更新。②計算屬性的求值結果會被緩存起來,以方便下次直接使用。③計算屬性適用于執行更加復雜的表達式,這些表達式往往太長或需要頻繁的重復使用,所以不能在模板中直接使用。④計算屬性是data對象的一個擴展和增強版本。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
国产综合久久一区二区三区