日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

詳解Vue之計算屬性

瀏覽:17日期:2023-01-12 08:32:37

模板內的表達式通常用于簡單的運算,當其過長或邏輯復復雜時,會變得難以維護

什么是計算屬性

在Vue應用中,在模板中雙向綁定一些數據或者表達式,但是表達式如果過長,或者邏輯更為復雜時,就會變得臃腫甚至難以維護和閱讀,比如

<div>{{text.split(’,’).reverse().join(’,’)}}</div>.

這里表達式包含三個操作,并不是很清晰,所以在遇到復雜的邏輯時應該使用計算屬性,上例可以用計算屬性進行改寫:

<div id='CalculationProperties'> {{ReversedText}} </div><script> var CalculationProperties = new Vue({ el: '#CalculationProperties', data: {text:'123,456', }, computed: {ReversedText: function (){ //所有計算屬性都以函數的形式寫在Vue實例內的computed選項內,最終返回計算后的結果 return this.text.split(’,’).reverse().join(’,’)} } })</script>

所有計算屬性都以函數的形式寫在Vue實例內的computed選項內,最終返回計算后的結果

計算屬性用法

在一個計算屬性里可以完成各種復雜的邏輯,包括邏輯運算、函數調用等,只要最終返回一個結果就可以。除了上面的簡單的用法,計算屬性還可以依賴多個vue實例的數據,只要其中人一個數據變化,計算屬性就會重新執行,視圖也會更新,例如下面的例子展示的是購物車內兩個包裹的物品總價

<div id='prices'> 總價: {{prices}} </div> <script> // <!--購物車總價--> var prices = new Vue({ el: '#prices', data: {package1: [{ name: '華為mate20pro', price: 4566, count: 2},{ name: '華為p30', price: 4166, count: 2},],package2: [{ name: '蘋果', price: 30, count: 2},{ name: '香蕉', price: 2, count: 20},] }, computed: {prices: function () { var prices = 0; debugger for (var i = 0; i < this.package1.length; i++) { prices += this.package1[i].price * this.package1[i].count; } for (var i = 0; i < this.package2.length; i++) { prices += this.package2[i].price * this.package2[i].count; } return prices;} } }) </script>

當package1或package2中的商品發生變化,比如購買數量變化或者增刪商品時,計算屬性prices就會自動更新,視圖中的總價也會自動變化

每個計算屬性都包含一個getter和setter,上面的例子都是計算屬性默認用法,只是利用了getter來讀取。在你需要時,也可以提供一個setter函數,當手動修改計算屬性的值就像修改一個普通數據那樣,就會觸發setter函數,執行一些自定義的操作。

<!--setter--> <div id='setter'> 姓名: {{fullName}} </div><script> var setter = new Vue({ el: 'setter', data: {firstName: ’Jack’,lastName:’Green’ }, computed: {fullName: { //getter,用于讀取 get: function () { return this.firstName + ’ ’ + this.lastName }, //setter,寫入時觸發 set: function (newValue) { var names = newValue.split(’ ’); this.firstName = names[0]; this.lastName = names[1]; }} } })</script>

當執行 setter.fullName=’Join Doe’時候,setter就會被調用,數據firstName和lastName都會相對更新,視圖同樣也會更新

絕大多情況下,我們只會使用默認的getter方法來讀取一個計算屬性,在業務中很少使用到setter,所以在聲明一個計算屬性的時候,可以直接使用默認的寫法,不必將getter和setter都聲明

計算屬性除啦以上簡單的文本插值外,還經常用于動態的設置元素的樣式名稱class和內聯樣式style,當使用組件時,計算屬性也經常用來動態傳遞props以后,我會慢慢介紹到

計算屬性還有兩個很使用的小技巧很容易被忽略,一是計算屬性可以依賴其他計算屬性,二是計算屬性不僅可以依賴當前Vue實例的數據,還可以依賴其他Vue實例的數據

<div id='app1'></div> <div id='app2'> {{reversedText}} </div><script> var app1 = new Vue({ el: '#app1', data: {text: '123,456' } }); var app2 = new Vue({ el: '#app2', computed: {reversedText: function () { //這里是依賴app1實例中的數據text return app1.text.split(’,’).reverse().join(’,’)} } })</script>

這里我們創建了兩個vue實例app1和app2,在app2的計算屬性reversedText中,依賴的是app1的數據text,所以當text變化時,實例app2的計算屬性也會變化,這樣的用法以后用到的也會比較多,尤其是在多人協同開發時很常用,以為你寫的組件所用到的數據需要依賴他人的組件提供,以后接觸的多了就會慢慢的意識到這一點。

計算屬性緩存

其實細心的話就會發現,調用methods里的方法也能實現和計算屬性一樣的效果,甚至有的方法還能接收參數,使用起來更加的靈活,既然使用methods就可以實現,那為什么還需要計算屬性呢?原因就是計算屬性是基于他的依賴緩存的。一個計算屬性所依賴的數據發生變化時,他才會重新取值,所以依賴的text只要不改變。計算屬性也就不更新

computed:{now:function(){return Date.now()}}

這里的Date.now()不是響應式依賴,所以計算屬性now 不會更新,但是methods則不同,只要重新渲染他就會被調用,因此函數也會被執行。

使用計算屬性還是methods取決于你是否需要緩存,當遍歷大數組和做大量計算時,應當使用計算屬性,除非你不希望得到緩存

以上就是詳解Vue之計算屬性的詳細內容,更多關于vue 計算屬性的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩高清欧美激情| 国产成人在线中文字幕| 精品丝袜在线| 国产精品丝袜在线播放| 亚洲tv在线| 亚洲精品第一| 亚洲精品影视| 亚洲三级国产| 亚洲毛片在线| 免费人成网站在线观看欧美高清| 中文国产一区| 男人的天堂久久精品| 免费观看在线综合色| 亚洲在线免费| 综合在线一区| 日本不卡在线视频| 欧美亚洲三级| 国产精久久一区二区| 麻豆91小视频| 国产va在线视频| 久久久夜夜夜| 狠狠操综合网| 麻豆9191精品国产| 日本一不卡视频| 91精品国产自产精品男人的天堂| 欧美日本久久| 精品视频自拍| 91看片一区| 欧美+亚洲+精品+三区| 中文字幕av一区二区三区四区| 日韩中文字幕一区二区高清99| 91成人精品观看| 麻豆91小视频| 色婷婷精品视频| 亚洲综合另类| 国产亚洲欧美日韩在线观看一区二区 | 日韩av网站免费在线| 国产精品久久久久久久久久妞妞| 国产福利片在线观看| 亚洲高清毛片| 爽好多水快深点欧美视频| 日本欧美久久久久免费播放网| 欧美成人aaa| 久久五月天小说| 亚洲乱码一区| 国产一区日韩| 亚洲一区欧美二区| 国产精品一区二区三区四区在线观看| 精品国产18久久久久久二百| 在线日韩中文| 久久精品99国产精品| 丁香婷婷久久| 玖玖玖国产精品| 国产福利亚洲| 日韩亚洲精品在线| 国产精品宾馆| 精品在线99| 国产九一精品| 美女久久久久| 国产精品手机在线播放| 久久九九精品| 欧美亚洲免费| 99视频精品全国免费| 日韩国产欧美一区二区三区| 日韩精品电影| 日韩视频一二区| 最近高清中文在线字幕在线观看1| 日韩午夜免费| 国产一区二区三区探花| 日韩制服丝袜av| 美女毛片一区二区三区四区| 999久久久亚洲| 美女精品在线观看| 日韩**一区毛片| 国产精品mv在线观看| 日本va欧美va精品| 丝袜亚洲精品中文字幕一区| 国产美女视频一区二区| 亚洲精品极品| 日韩高清欧美| 国产精品亚洲综合久久| 免费一级欧美片在线观看网站| 欧洲精品一区二区三区| 亚洲美女91| 国产精品三级| 91p九色成人| 99久久精品网站| 亚洲免费中文| 国精品一区二区三区| 久久国产小视频| 国产精品久久久久久久免费观看| 国产欧美另类| 国产成人在线中文字幕| 亚洲主播在线| 精精国产xxxx视频在线野外| 午夜精品一区二区三区国产| 三级欧美韩日大片在线看| 欧美日韩精品免费观看视欧美高清免费大片 | 国产精品115| 午夜日韩福利| 国产亚洲精品久久久久婷婷瑜伽| 国产精品久久久久毛片大屁完整版| 日韩专区视频网站| 免费在线日韩av| 麻豆精品91| 激情不卡一区二区三区视频在线| 亚洲三区欧美一区国产二区| 图片区亚洲欧美小说区| 粉嫩av一区二区三区四区五区| 国产亚洲人成a在线v网站| 久久国产精品久久久久久电车| 日韩免费看片| 国产aⅴ精品一区二区四区| 久久久一二三| 日韩有吗在线观看| 国产一区二区久久久久| 国产91久久精品一区二区| 蜜桃久久久久| 热久久久久久| 国产一区二区三区自拍| 狠狠久久婷婷| 蜜桃av一区二区在线观看| 久久这里只有| 免费黄网站欧美| 99国产精品| 99riav国产精品| 久久精品成人| а√天堂8资源中文在线| 国产日产一区| 亚洲精品日本| 国产精品1luya在线播放| 国产亚洲毛片| 日韩网站中文字幕| 国产va在线视频| 亚洲国内欧美| 日韩精彩视频在线观看| 日韩在线麻豆| 欧美精选一区二区三区| 精品视频一二| 中文在线免费视频| 国产日韩一区二区三区在线播放| 国产情侣一区在线| 亚洲一级在线| 亚洲精品日本| 国产精品一级在线观看| 美国三级日本三级久久99| 91成人网在线观看| 9999国产精品| 日韩精品午夜| 性欧美videohd高精| 久久三级中文| 特黄毛片在线观看| 国产精品地址| 亚洲第一精品影视| 国产精品啊v在线| 日韩精品欧美精品| 国产精品日本一区二区三区在线| 日韩国产一区二区| 亚洲欧美日韩高清在线| 中文日韩欧美| 欧美经典一区| 99成人在线视频| 欧美在线亚洲综合一区| 国产精品一国产精品| 久久激五月天综合精品| 在线亚洲一区| 91一区二区| 91精品啪在线观看国产18| 精品国产黄a∨片高清在线| 久久精品系列| 国产成人精品一区二区免费看京 | 亚洲一区二区三区无吗| 国产成人精品亚洲线观看 | 婷婷久久一区| 99久久九九| 久久精品主播| 日本精品另类| 色爱综合av| 久久一区亚洲| 久久av网站| 国产成人精品999在线观看| 亚洲精品少妇| 日韩精品一二三| 欧美一级网站| 国产一区二区三区成人欧美日韩在线观看 | 91成人精品| 中文精品视频| 日韩**一区毛片| 日韩大片在线观看| 激情综合婷婷| 亚洲午夜黄色| 日欧美一区二区| 视频精品一区| 国产一区二区三区不卡av| 麻豆视频一区| 国产精品专区免费| 五月激激激综合网色播 | 视频一区欧美日韩| 婷婷综合五月| 欧美特黄a级高清免费大片a级|