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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解Vue之計(jì)算屬性

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

模板內(nèi)的表達(dá)式通常用于簡(jiǎn)單的運(yùn)算,當(dāng)其過(guò)長(zhǎng)或邏輯復(fù)復(fù)雜時(shí),會(huì)變得難以維護(hù)

什么是計(jì)算屬性

在Vue應(yīng)用中,在模板中雙向綁定一些數(shù)據(jù)或者表達(dá)式,但是表達(dá)式如果過(guò)長(zhǎng),或者邏輯更為復(fù)雜時(shí),就會(huì)變得臃腫甚至難以維護(hù)和閱讀,比如

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

這里表達(dá)式包含三個(gè)操作,并不是很清晰,所以在遇到復(fù)雜的邏輯時(shí)應(yīng)該使用計(jì)算屬性,上例可以用計(jì)算屬性進(jìn)行改寫(xiě):

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

所有計(jì)算屬性都以函數(shù)的形式寫(xiě)在Vue實(shí)例內(nèi)的computed選項(xiàng)內(nèi),最終返回計(jì)算后的結(jié)果

計(jì)算屬性用法

在一個(gè)計(jì)算屬性里可以完成各種復(fù)雜的邏輯,包括邏輯運(yùn)算、函數(shù)調(diào)用等,只要最終返回一個(gè)結(jié)果就可以。除了上面的簡(jiǎn)單的用法,計(jì)算屬性還可以依賴多個(gè)vue實(shí)例的數(shù)據(jù),只要其中人一個(gè)數(shù)據(jù)變化,計(jì)算屬性就會(huì)重新執(zhí)行,視圖也會(huì)更新,例如下面的例子展示的是購(gòu)物車內(nèi)兩個(gè)包裹的物品總價(jià)

<div id='prices'> 總價(jià): {{prices}} </div> <script> // <!--購(gòu)物車總價(jià)--> var prices = new Vue({ el: '#prices', data: {package1: [{ name: '華為mate20pro', price: 4566, count: 2},{ name: '華為p30', price: 4166, count: 2},],package2: [{ name: '蘋(píng)果', 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>

當(dāng)package1或package2中的商品發(fā)生變化,比如購(gòu)買數(shù)量變化或者增刪商品時(shí),計(jì)算屬性prices就會(huì)自動(dòng)更新,視圖中的總價(jià)也會(huì)自動(dòng)變化

每個(gè)計(jì)算屬性都包含一個(gè)getter和setter,上面的例子都是計(jì)算屬性默認(rèn)用法,只是利用了getter來(lái)讀取。在你需要時(shí),也可以提供一個(gè)setter函數(shù),當(dāng)手動(dòng)修改計(jì)算屬性的值就像修改一個(gè)普通數(shù)據(jù)那樣,就會(huì)觸發(fā)setter函數(shù),執(zhí)行一些自定義的操作。

<!--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,寫(xiě)入時(shí)觸發(fā) set: function (newValue) { var names = newValue.split(’ ’); this.firstName = names[0]; this.lastName = names[1]; }} } })</script>

當(dāng)執(zhí)行 setter.fullName=’Join Doe’時(shí)候,setter就會(huì)被調(diào)用,數(shù)據(jù)firstName和lastName都會(huì)相對(duì)更新,視圖同樣也會(huì)更新

絕大多情況下,我們只會(huì)使用默認(rèn)的getter方法來(lái)讀取一個(gè)計(jì)算屬性,在業(yè)務(wù)中很少使用到setter,所以在聲明一個(gè)計(jì)算屬性的時(shí)候,可以直接使用默認(rèn)的寫(xiě)法,不必將getter和setter都聲明

計(jì)算屬性除啦以上簡(jiǎn)單的文本插值外,還經(jīng)常用于動(dòng)態(tài)的設(shè)置元素的樣式名稱class和內(nèi)聯(lián)樣式style,當(dāng)使用組件時(shí),計(jì)算屬性也經(jīng)常用來(lái)動(dòng)態(tài)傳遞props以后,我會(huì)慢慢介紹到

計(jì)算屬性還有兩個(gè)很使用的小技巧很容易被忽略,一是計(jì)算屬性可以依賴其他計(jì)算屬性,二是計(jì)算屬性不僅可以依賴當(dāng)前Vue實(shí)例的數(shù)據(jù),還可以依賴其他Vue實(shí)例的數(shù)據(jù)

<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實(shí)例中的數(shù)據(jù)text return app1.text.split(’,’).reverse().join(’,’)} } })</script>

這里我們創(chuàng)建了兩個(gè)vue實(shí)例app1和app2,在app2的計(jì)算屬性reversedText中,依賴的是app1的數(shù)據(jù)text,所以當(dāng)text變化時(shí),實(shí)例app2的計(jì)算屬性也會(huì)變化,這樣的用法以后用到的也會(huì)比較多,尤其是在多人協(xié)同開(kāi)發(fā)時(shí)很常用,以為你寫(xiě)的組件所用到的數(shù)據(jù)需要依賴他人的組件提供,以后接觸的多了就會(huì)慢慢的意識(shí)到這一點(diǎn)。

計(jì)算屬性緩存

其實(shí)細(xì)心的話就會(huì)發(fā)現(xiàn),調(diào)用methods里的方法也能實(shí)現(xiàn)和計(jì)算屬性一樣的效果,甚至有的方法還能接收參數(shù),使用起來(lái)更加的靈活,既然使用methods就可以實(shí)現(xiàn),那為什么還需要計(jì)算屬性呢?原因就是計(jì)算屬性是基于他的依賴緩存的。一個(gè)計(jì)算屬性所依賴的數(shù)據(jù)發(fā)生變化時(shí),他才會(huì)重新取值,所以依賴的text只要不改變。計(jì)算屬性也就不更新

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

這里的Date.now()不是響應(yīng)式依賴,所以計(jì)算屬性now 不會(huì)更新,但是methods則不同,只要重新渲染他就會(huì)被調(diào)用,因此函數(shù)也會(huì)被執(zhí)行。

使用計(jì)算屬性還是methods取決于你是否需要緩存,當(dāng)遍歷大數(shù)組和做大量計(jì)算時(shí),應(yīng)當(dāng)使用計(jì)算屬性,除非你不希望得到緩存

以上就是詳解Vue之計(jì)算屬性的詳細(xì)內(nèi)容,更多關(guān)于vue 計(jì)算屬性的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美aa一级| 亚洲人成毛片在线播放女女| 亚洲综合电影| 欧美激情视频一区二区三区免费 | 国产综合色产| 精品国产亚洲一区二区三区大结局| 天使萌一区二区三区免费观看| 精品久久久中文字幕| 国产无遮挡裸体免费久久| 亚洲欧洲美洲国产香蕉| 日韩精品久久理论片| 国产精品亚洲综合在线观看| 在线观看一区| 亚洲1区在线观看| 日韩av资源网| 精品久久一区| 亚洲一级高清| 日韩一级不卡| 视频一区日韩| 麻豆精品在线视频| 精品丝袜在线| 成人精品国产亚洲| 色88888久久久久久影院| 亚洲精品.com| 香蕉视频成人在线观看| 伊人影院久久| 亚洲在线久久| 高清一区二区| 好吊一区二区三区| 精品一区二区三区中文字幕| 日韩精品诱惑一区?区三区| 国模 一区 二区 三区| 亚洲ab电影| 久久久男人天堂| 午夜宅男久久久| 日韩精品一区二区三区中文字幕| 日产欧产美韩系列久久99| 国模精品一区| 日韩在线播放一区二区| 精品国产aⅴ| 亚洲久久视频| 日韩欧美一区二区三区在线视频 | 欧美大黑bbbbbbbbb在线| 99国产精品自拍| 国产福利资源一区| 蜜桃久久久久久| 国产黄大片在线观看| 在线午夜精品| www.51av欧美视频| 国产精品高清一区二区| 肉色欧美久久久久久久免费看| 亚洲人成在线影院| 欧美丝袜一区| 日韩a一区二区| 国产精品亲子伦av一区二区三区 | 婷婷色综合网| 91麻豆精品激情在线观看最新| 香蕉视频成人在线观看| 一区福利视频| 日韩在线二区| 国产一区二区三区亚洲综合| 亚洲深夜影院| 亚洲欧洲一区| 日本不良网站在线观看| 国产情侣一区| 麻豆中文一区二区| 亚洲精品系列| 亚洲久久在线| 亚洲尤物av| 亚洲乱码久久| 日韩欧美中文字幕一区二区三区| aa国产精品| 午夜欧美精品| 国产精品日韩| 免费视频最近日韩| 日韩中文欧美在线| 日韩精彩视频在线观看| 欧美日一区二区三区在线观看国产免 | 国产亚洲精品自拍| 激情久久久久久久| 久久蜜桃精品| av不卡免费看| 蜜桃久久av一区| 久久国内精品自在自线400部| 国产激情精品一区二区三区| 麻豆一区二区三| 亚洲成人一区在线观看| 亚洲精品小说| 国产精品一区高清| 国际精品欧美精品| 国产一区二区三区四区五区| 韩国女主播一区二区三区| 日韩不卡免费高清视频| 中文精品视频| 91精品福利观看| 日韩电影在线视频| 亚洲欧美日韩国产一区二区| 国产欧美高清视频在线| 久久精品一本| 久久国产毛片| 91大神在线观看线路一区| 国产精品v一区二区三区| 久久久久国产精品一区三寸| 日本午夜免费一区二区| 精品视频久久| 精精国产xxxx视频在线播放| 亚洲精品在线观看91| 日韩精品亚洲一区二区三区免费| 亚洲永久av| 美女高潮久久久| 日韩制服丝袜先锋影音| 国产精品蜜芽在线观看| 先锋影音国产一区| 久久亚洲国产| 精品国产中文字幕第一页| 丝瓜av网站精品一区二区| 91tv亚洲精品香蕉国产一区| 国产欧美一区二区三区米奇| 日韩av免费| 国产一区调教| 日韩精品亚洲专区在线观看| 国产一区日韩欧美| 国产精品成人一区二区网站软件| 亚洲黄页一区| 久久中文字幕av| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 亚洲开心激情| 亚洲天堂成人| 中文字幕成在线观看| 久久国产免费看| 婷婷精品在线| 欧美日韩少妇| 久久精品国产68国产精品亚洲| 精品入口麻豆88视频| 日韩福利视频网| 日韩国产高清在线| 国产免费久久| 日本亚州欧洲精品不卡| 亚洲精品乱码日韩| 国产精品蜜月aⅴ在线| 麻豆视频观看网址久久| 精品在线99| 一区三区视频| 啪啪亚洲精品| 国产精品啊v在线| 久久精品国产精品亚洲毛片| 国产探花在线精品| 色综合视频一区二区三区日韩 | 美女性感视频久久| 久久精品av麻豆的观看方式| 日本成人在线一区| 麻豆一区二区三| 成人亚洲一区| 久久久影院免费| 亚洲人成高清| 国产精品mm| 国产在线成人| 日韩欧美三区| 日本在线啊啊| 91亚洲自偷观看高清| 国产一区福利| 免费福利视频一区二区三区| 老牛影视精品| 在线日韩欧美| 蜜桃一区二区三区在线观看| 亚洲毛片在线免费| 热久久久久久| 精品视频国内| 亚洲天堂久久| 日韩精品第二页| 捆绑调教美女网站视频一区| 美女久久精品| 热三久草你在线| 亚洲午夜精品久久久久久app| 香蕉精品久久| 久久亚洲影院| 久久久噜噜噜| 久久亚洲专区| 国产一区二区三区四区五区| 国产伦理久久久久久妇女| 欧美成人高清| 日韩欧美中文| 欧美xxxx中国| 亚洲黄色网址| 精品国模一区二区三区| 国内精品麻豆美女在线播放视频| 日韩高清一区在线| 亚洲精品视频一二三区| 国产美女一区| 久久精品国内一区二区三区水蜜桃| 丰满少妇一区| 97人人精品| 国产资源在线观看入口av| 国产精品日本欧美一区二区三区| 久久久久久久欧美精品| 亚洲精品黄色| 日韩精品麻豆| 青青在线精品| 三级在线观看一区二区| 国产中文字幕一区二区三区|