亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue計算屬性computed與方法methods的區(qū)別及說明

 更新時間:2024年08月15日 09:50:02   作者:專注寫bug  
這篇文章主要介紹了Vue計算屬性computed與方法methods的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

在官方文檔中,給出了計算屬性的說明與用途,也講述了計算屬性與方法的區(qū)別點。

本篇博客只做自己的探究記錄,以官方文檔為準。

vue 計算屬性 官方文檔

計算屬性的由來

正常來說,使用模板語法也能實現(xiàn)一些判斷操作,并將判斷后的數(shù)據(jù)值進行展示。

如下:

<template>
    <h1>計算屬性與方法實現(xiàn)探究</h1>
    <p>Has published books:</p>
    <span>{{ author.books.length > 0 ? 'Yes' : 'No' }}</span>
</template>
<script>
export default {
    data(){
        return{
            author: {
                name: 'John Doe',
                books: [
                    'Vue 2 - Advanced Guide',
                    'Vue 3 - Basic Guide',
                    'Vue 4 - The Mystery'
                ]
            }
        }
    }
}
</script>

效果展示如下所示:

但正常開發(fā)來說,在模板語法中,只會用來做基本的數(shù)據(jù)展示,數(shù)據(jù)的處理需要使用放入計算屬性 computed中進行實現(xiàn)。

如下所示:

<template>
    <h1>計算屬性與方法實現(xiàn)探究</h1>
    <p>Has published books:</p>
    <span>{{ author.books.length > 0 ? 'Yes' : 'No' }}</span>
    <hr>
    <span>計算屬性:{{ checkBooks }}</span> <br>
</template>
<script>
export default {
    data(){
        return{
            author: {
                name: 'John Doe',
                books: [
                    'Vue 2 - Advanced Guide',
                    'Vue 3 - Basic Guide',
                    'Vue 4 - The Mystery'
                ]
            }
        }
    },
    computed:{
        checkBooks(){
            console.log("=====計算屬性=====");
            return this.author.books.length > 0 ? 'Yes' : 'No';
        }
    }
}
</script>

由于計算屬性,屬于屬性,所以在標簽中采取{{ }}包含時,不能帶有()。

方法實現(xiàn) 計算屬性 同樣的效果

由于methods中,用來存放函數(shù)、方法,所以在計算屬性computed中的方法依舊可以用methods實現(xiàn)。

如下所示:

<template>
    <h1>計算屬性與方法實現(xiàn)探究</h1>
    <p>Has published books:</p>
    <span>{{ author.books.length > 0 ? 'Yes' : 'No' }}</span>
    <hr>
    <span>計算屬性:{{ checkBooks }}</span> <br>
    <hr>
    <span>方法實現(xiàn):{{ checkBooks1() }}</span> <br>
</template>
<script>
export default {
    data(){
        return{
            author: {
                name: 'John Doe',
                books: [
                    'Vue 2 - Advanced Guide',
                    'Vue 3 - Basic Guide',
                    'Vue 4 - The Mystery'
                ]
            }
        }
    },
    computed:{
        checkBooks(){
            console.log("=====計算屬性=====");
            return this.author.books.length > 0 ? 'Yes' : 'No';
        }
    },
    // methods 中存放函數(shù)
    methods:{
        checkBooks1(){
            console.log("*****方法實現(xiàn)*****");
            return this.author.books.length > 0 ? 'Yes' : 'No';
        }
    }
}
</script>

由于是采取methods進行數(shù)據(jù)的計算,所以數(shù)據(jù)的展示,需要使用()標識調(diào)用方法。

【注意】計算屬性與方法,名稱不能相同,否則會出現(xiàn)報錯!

計算屬性緩存 vs 方法

雖然在methods中編寫一個方法調(diào)用,與計算屬性中拋出一個計算結(jié)果值,能達到一樣的效果。

但兩者本身有很大的區(qū)別。

不同之處在于計算屬性值會基于其響應(yīng)式依賴被緩存。

這句話如何理解呢,看下面的案例:

<template>
    <h1>計算屬性與方法實現(xiàn)探究</h1>
    <p>Has published books:</p>
    <span>{{ author.books.length > 0 ? 'Yes' : 'No' }}</span>
    <hr>
    <span>計算屬性:{{ checkBooks }}</span> <br>
    <span>計算屬性:{{ checkBooks }}</span> <br>
    <span>計算屬性:{{ checkBooks }}</span> <br>
    <span>計算屬性:{{ checkBooks }}</span> <br>
    <hr>
    <span>方法實現(xiàn):{{ checkBooks1() }}</span> <br>
    <span>方法實現(xiàn):{{ checkBooks1() }}</span> <br>
    <span>方法實現(xiàn):{{ checkBooks1() }}</span> <br>
    <span>方法實現(xiàn):{{ checkBooks1() }}</span> <br>
</template>
<script>
export default {
    data(){
        return{
            author: {
                name: 'John Doe',
                books: [
                    'Vue 2 - Advanced Guide',
                    'Vue 3 - Basic Guide',
                    'Vue 4 - The Mystery'
                ]
            }
        }
    },
    computed:{
        checkBooks(){
            console.log("=====計算屬性=====");
            return this.author.books.length > 0 ? 'Yes' : 'No';
        }
    },
    // methods 中存放函數(shù)
    methods:{
        checkBooks1(){
            console.log("*****方法實現(xiàn)*****");
            return this.author.books.length > 0 ? 'Yes' : 'No';
        }
    }
}
</script>

查看瀏覽器控制臺中的打印信息:

【發(fā)現(xiàn)】

當初始數(shù)組中的數(shù)據(jù)并未變化的時候,如果采取計算屬性,在第一次做調(diào)用處理,并將第一次計算的結(jié)果值做緩存;后面多次重復調(diào)用,直接讀取的是緩存中的數(shù)據(jù)值,而不是重復計算。

方法中,每次的調(diào)用都會重新執(zhí)行一次計算邏輯。

相比之下,方法調(diào)用總是會在重渲染發(fā)生時再次執(zhí)行函數(shù)。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Element-UI中el-table如何合并相同單元格

    Element-UI中el-table如何合并相同單元格

    這篇文章主要給大家介紹了關(guān)于Element-UI中el-table如何合并相同單元格的相關(guān)資料,el-table的組件的可以合并單元格,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • Vue+penlayers實現(xiàn)多邊形繪制及展示

    Vue+penlayers實現(xiàn)多邊形繪制及展示

    這篇文章主要為大家詳細介紹了Vue+penlayers實現(xiàn)多邊形繪制及展示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Vue多系統(tǒng)切換實現(xiàn)方案

    Vue多系統(tǒng)切換實現(xiàn)方案

    本篇文章給大家分享了關(guān)于Vue多系統(tǒng)切換實現(xiàn)的解決方案,對此有需要的朋友可以跟著參考學習下。
    2018-06-06
  • Vue AST源碼解析第一篇

    Vue AST源碼解析第一篇

    這篇文章主要為大家詳細介紹了Vue AST源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • vue指令中的v-once用法

    vue指令中的v-once用法

    這篇文章主要介紹了vue指令中的v-once用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Vue export import 導入導出的多種方式與區(qū)別介紹

    Vue export import 導入導出的多種方式與區(qū)別介紹

    這篇文章主要介紹了Vue export import 導入導出的多種方式與區(qū)別介紹,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Vue.js如何實現(xiàn)路由懶加載淺析

    Vue.js如何實現(xiàn)路由懶加載淺析

    Vue是可以自定義指令的,最近學習過程中遇見了一個需要懶加載的功能,發(fā)現(xiàn)網(wǎng)上這方面的資料較少,所以下面這篇文章主要給大家介紹了關(guān)于Vue.js如何實現(xiàn)路由懶加載的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • Vue子組件向父組件傳值示范方法

    Vue子組件向父組件傳值示范方法

    這篇文章主要介紹了Vue子組件向父組件傳值方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-03-03
  • Vue項目中實現(xiàn)無感Token刷新的示例

    Vue項目中實現(xiàn)無感Token刷新的示例

    在前端項目中,Token用于用戶認證和權(quán)限管理,文章介紹了在Vue項目中實現(xiàn)Token的無感刷新,包括Token刷新的原理、攔截器的應(yīng)用和處理Token過期的方法,感興趣的可以了解一下
    2024-11-11
  • vue實現(xiàn)echart餅圖legend顯示百分比的方法

    vue實現(xiàn)echart餅圖legend顯示百分比的方法

    本文主要介紹了vue實現(xiàn)echart餅圖legend顯示百分比的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評論