您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么用Vue計算屬性實現成績單”,在日常操作中,相信很多人在怎么用Vue計算屬性實現成績單問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Vue計算屬性實現成績單”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
本文實例為大家分享了Vue計算屬性實現成績單,供大家參考,具體內容如下
代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>成績單統計</title> <script src="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計算屬性的特點。
計算屬性本質是一個方法,但是通常被當作一個屬性來使用,一般不加()。但在實際開發中,如果需要給計算屬性中的方法傳參,就需要使用閉包傳參的方法。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Evaluate</title> <script src="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){}均可
計算屬性通常用來獲取數據(根據data的變化而變化),所以其默認只有getter,但需要時,Vue.js也提供setter功能。set方法與get方法先后順序無關,并且set方法接受的參數為get方法的返回值。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Computed</title> <script src="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計算屬性實現成績單”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。