欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

vue計(jì)算屬性的示例分析

這篇文章主要介紹vue計(jì)算屬性的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司公司2013年成立,先為阿圖什等服務(wù)建站,阿圖什等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為阿圖什企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

vue計(jì)算屬性:在【Vue.js 0.12.8】版本之前,只要讀取相應(yīng)的計(jì)算屬性,對(duì)應(yīng)的getter就會(huì)重新執(zhí)行。而在【Vue.js 0.12.8】版本中,在這方面進(jìn)行了優(yōu)化,即只有計(jì)算屬性依賴的屬性值發(fā)生了改變時(shí)才會(huì)重新執(zhí)行g(shù)etter。

vue計(jì)算屬性:

一、計(jì)算屬性

計(jì)算屬性就是當(dāng)其依賴屬性的值發(fā)生變化時(shí),這個(gè)屬性的值會(huì)自動(dòng)更新,與之相關(guān)的DOM部分也會(huì)同步自動(dòng)更新。

代碼如下:

<div id="example">
        <input type="text" v-model="didi">
        <input type="text" v-model="family">
        <br>
        didi={{didi}},family={{family}},didiFamily={{didiFamily}}
    </div>
    var vm = new Vue({
        el:'#example',
        data:{
            didi:'didi',
            family:'family'
        },
        computed:{
            <!-- 一個(gè)計(jì)算屬性的getter -->
            didiFamily:function(){
                <!-- this指向vm實(shí)例 -->
                return this.didi+this.family
            }
        }
    })

當(dāng)vm.didi和vm.family的值發(fā)生變化時(shí),vm.didiFamily的值會(huì)自動(dòng)更新,并且會(huì)自動(dòng)同步更新DOM部分。

前面實(shí)例只提供了getter,實(shí)際上除了getter。我們還可以設(shè)置計(jì)算屬性的setter。代碼示例如下:

<div id="example">
        <input type="text" v-model="didi">
        <input type="text" v-model="family">
        <br>
        didi={{didi}},family={{family}},didiFamily={{didiFamily}}
    </div>
    var vm = new Vue({
        el:'#example',
        data:{
            didi:'didi',
            family:'family'
        },
        computed:{
            <!-- 一個(gè)計(jì)算屬性的getter -->
            didiFamily:function(){
                get:function(){
                    <!-- this指向vm實(shí)例 -->
                    return this.didi+this.family
                },
                <!-- 一個(gè)計(jì)算屬性的setter -->
                set:function(newVal){
                    var names = newVal.split('')
                    this.didi = names[0]
                    this.didi = names[1]
                }
            }
        }
    })

當(dāng)設(shè)置vm.didiFamily的值時(shí),vm.didi和vm.family的值也會(huì)自動(dòng)更新。

二、計(jì)算屬性緩存

計(jì)算屬性的特性的確很誘人,但是如果在計(jì)算屬性方法中執(zhí)行大量的耗時(shí)操作,則可能會(huì)帶來一些性能問題。例如,在計(jì)算屬性getter中循環(huán)一個(gè)大的數(shù)組以執(zhí)行很多操作,那么當(dāng)頻繁調(diào)用該計(jì)算屬性時(shí),就會(huì)導(dǎo)致大量不必要的運(yùn)算。

在Vue.js 0.12.8版本之前,只要讀取相應(yīng)的計(jì)算屬性,對(duì)應(yīng)的getter就會(huì)重新執(zhí)行。而在Vue.js 0.12.8版本中,在這方面進(jìn)行了優(yōu)化,即只有計(jì)算屬性依賴的屬性值發(fā)生了改變時(shí)才會(huì)重新執(zhí)行g(shù)etter。

這樣也存在一個(gè)問題,就是只有Vue實(shí)例中被觀察的數(shù)據(jù)屬性發(fā)生了改變時(shí)才會(huì)重新執(zhí)行g(shù)etter。但是有時(shí)候計(jì)算屬性依賴實(shí)時(shí)3的非觀察數(shù)據(jù)屬性。代碼示例如下:

var vm = new Vue({
   data:{
       welcome:'welcome to join didiFamily'         
    },
   computed:{
        example:function(){
            return Date.now() + this.welcome    
         }       
     }  
})

我們需要在每次訪問example時(shí)都取得最新的時(shí)間而不是緩存的時(shí)間。從Vue.js 0.12.11版本開始,默認(rèn)提供了緩存開關(guān),在計(jì)算屬性對(duì)象中指定cache字段來控制是否開啟緩存。代碼示例如下:

var vm = new Vue({
   data:{
       welcome:'welcome to join didiFamily'         
    },
   computed:{
        example:function(){
            //關(guān)閉緩存,默認(rèn)為true
            cache:false,
            get:function(){
             return Date.now() + this.welcome               
             }      
         }       
     }  
})

設(shè)置cache為false關(guān)閉緩存之后,每次直接訪問vm.example時(shí)都會(huì)重新執(zhí)行g(shù)etter方法。

三、常見問題

在實(shí)際開發(fā)中使用計(jì)算屬性時(shí),我們會(huì)遇到各種各樣的問題,以下是搜集到的一些常見問題以及解決方案。

計(jì)算屬性getter不執(zhí)行的場(chǎng)景

從前面我們了解到,當(dāng)計(jì)算屬性依賴的數(shù)據(jù)屬性發(fā)生改變時(shí),計(jì)算屬性的getter方法就會(huì)執(zhí)行。但是在有些情況下,雖然依賴數(shù)據(jù)屬性發(fā)生了改變,但計(jì)算屬性的getter方法并不會(huì)執(zhí)行。但是在有些情況下,雖然依賴數(shù)據(jù)屬性發(fā)生了改變,但計(jì)算屬性的getter方法并不會(huì)執(zhí)行。

當(dāng)包含計(jì)算屬性的節(jié)點(diǎn)被移除并且模板中其他地方?jīng)]有再引用該屬性時(shí),那么對(duì)應(yīng)的計(jì)算屬性的getter方法不會(huì)執(zhí)行。代碼示例如下:

<div id="example">
        <button @click='toggleShow'>Toggle Show Total Price</button>
        <p v-if="showTotal">Total Price = {{totalPrice}}</p>
    </div>
    new Vue({
        el:'#example',
        data:{
            showTotal:true,
            basePrice:100
        },
        computed:{
            totalPrice:function(){
                return this.basePrice + 1
            }
        },
        methods:{
            toggleShow:function(){
                this.showTotal = !this.showTotal
            }
        }
    })

當(dāng)點(diǎn)擊按鈕使showTotal為false,此時(shí)P元素會(huì)被移除,在P元素內(nèi)部的計(jì)算屬性totalPrice的getter方法不會(huì)執(zhí)行。但是當(dāng)計(jì)算屬性一直出現(xiàn)在模板中時(shí),getter方法還是會(huì)被執(zhí)行

2.在v-repeat中使用計(jì)算屬性

有時(shí)候從后端獲得JSON數(shù)據(jù)集合后,我們需要對(duì)單條數(shù)據(jù)應(yīng)用計(jì)算屬性。在Vue.js 0.12之前的版本中,我們可以在v-repeat所在元素上使用v-component指令。代碼示例如下:

<div id="items">
        <p v-repeat="items" vue-component="item">
            <button>{{fulltext}}</button>
        </p>
    </div>
    var items = [
        {number:1,text:'one'},
        {number:2,text:'two'}
    ]
    var vue = new Vue({
        el:'#items',
        data:{
            items:items
        },
        components:{
            item:{
               computed:{
                    fulltext:function(){
                        return 'item' +this.text
                    }
                }, 
            }
        }
    })

在Vue.js 0.12版本中,Vue.js廢棄了v-component指令,所以我們需要使用自定義元素組件來實(shí)現(xiàn)在v-repeat中使用計(jì)算屬性。代碼示例如下:

<div id="items">
        <my-item v-repeat="items" inline-template>
            
        </my-item>
    </div>
    var items = [
        {number:1,text:'one'},
        {number:2,text:'two'}
    ]
    var vue = new Vue({
        el:'#items',
        data:{
            items:items
        },
        components:{
            'my-item':{
               replace:true, 
               computed:{
                    fulltext:function(){
                        return 'item' +this.text
                    }
                }, 
            }
        }
    })

以上是“vue計(jì)算屬性的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文題目:vue計(jì)算屬性的示例分析
當(dāng)前鏈接:http://aaarwkj.com/article42/igsjec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、品牌網(wǎng)站制作、網(wǎng)站制作企業(yè)建站、網(wǎng)站營(yíng)銷移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
亚洲色图熟女激情另类| 欧美在线观看香蕉视频| 亚洲精品中文字幕码专区| 国语对白自拍视频在线播放| 少妇人妻系列中文在线| 日韩一区二区亚洲精品| 未满十八勿进黄网观看| 亚洲国产精品二区三区| 伊人久久亚洲福利精品| 日韩人妻中文字幕专区| 国产免费一区二区福利| 久久国产亚洲欧美日韩精品| 亚洲一二三区精品与老人| 亚洲av永久精品一区二区三区 | 91人妻这里只有精品| 婷婷网色偷偷亚洲男人| 欧美二区三区精品在线| 亚洲欧洲成熟熟女妇专区乱| 少妇午夜福利一区二区| 久久中文人妻丝袜不卡| 日韩黄av在线免费观看| 顶级少妇做爰片高潮丸| 日韩欧美亚洲一区二区| 韩国日本午夜福利在线| 日本一道二区三区我不卡| 国产丝袜在线福利观看| 十八岁毛片一区二区三区| 88国产精品久久久久久| 亚洲毛片一区二区在线| 久国产精品韩国三级视频| 成人av男人天堂东京热| 日本熟妇一区二区三区在线视频| 国产精品岛国片在线观看| 国产成人拍国产亚洲精品| 国产熟乱老女人露脸视频| 背德人妻中文字幕无修| 免费看夫妻性生活视频| 四虎影院成人精品久久| 国产有码视频一区二区三区| 亚洲综合另类小说专区| 亚洲一区二区视频在线播放|