最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

  • Vue中嵌入可浮動的第三方網(wǎng)頁窗口的示例詳解

    Vue中嵌入可浮動的第三方網(wǎng)頁窗口的示例詳解

    本文介紹了在Vue2項目中嵌入可浮動的第三方網(wǎng)頁窗口的實現(xiàn)方法,包括使用iframe、div+script和dialog元素等方式,并提供了一個實戰(zhàn)Demo,展示了如何在Vue組件中動態(tài)加載和控制浮窗的顯示,需要的朋友可以參考下
    2025-02-02
  • vue3?element?plus按需引入最優(yōu)雅的用法實例

    vue3?element?plus按需引入最優(yōu)雅的用法實例

    這篇文章主要給大家介紹了關(guān)于vue3?element?plus按需引入最優(yōu)雅的用法,以及關(guān)于Element-plus按需引入的一些坑,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • 在vue中使用Base64轉(zhuǎn)碼的案例

    在vue中使用Base64轉(zhuǎn)碼的案例

    這篇文章主要介紹了在vue中使用Base64轉(zhuǎn)碼的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue 父子組件數(shù)據(jù)傳遞的四種方式( inheritAttrs + $attrs + $listeners)

    Vue 父子組件數(shù)據(jù)傳遞的四種方式( inheritAttrs + $attrs + $listeners)

    這篇文章主要介紹了Vue 父子組件數(shù)據(jù)傳遞的四種方式( inheritAttrs + $attrs + $listeners),需要的朋友可以參考下
    2018-05-05
  • vue3.0如何使用computed來獲取vuex里數(shù)據(jù)

    vue3.0如何使用computed來獲取vuex里數(shù)據(jù)

    這篇文章主要介紹了vue3.0如何使用computed來獲取vuex里數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue+django項目部署全過程

    vue+django項目部署全過程

    文章介紹了如何部署一個多服務(wù)器架構(gòu)的項目,包括前端Vue和后端Django的部署,以及如何使用Nginx進行反向代理和負載均衡,數(shù)據(jù)庫的主從復制和集群配置,以及靜態(tài)文件和反向代理的配置
    2026-02-02
  • Vue通過封裝全局獲取焦點指令

    Vue通過封裝全局獲取焦點指令

    這篇文章主要為大家詳細介紹了Vue通過封裝全局獲取焦點指令的相關(guān)知識,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考下
    2023-12-12
  • Vue路由元信息與懶加載和模塊拆分詳細介紹

    Vue路由元信息與懶加載和模塊拆分詳細介紹

    有時,你可能希望將任意信息附加到路由上,如過渡名稱、誰可以訪問路由等。這些事情可以通過接收屬性對象的meta屬性來實現(xiàn),并且它可以在路由地址和導航守衛(wèi)上都被訪問到
    2022-09-09
  • 詳解Vue的組件注冊

    詳解Vue的組件注冊

    組件是Vue.js最強大的功能之一。組件可以擴展HTML元素,封裝可重用的代碼。在較高層面上,組件是自定義元素,Vue.js 的編譯器為它添加特殊功能,需要的朋友可以參考下
    2023-05-05
  • Vite和Vue CLI的優(yōu)劣

    Vite和Vue CLI的優(yōu)劣

    這篇文章主要介紹了Vite比Vue CLI快在哪里,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2021-01-01

最新評論

集安市| 会理县| 林西县| 房山区| 大关县| 新乡市| 元阳县| 滨海县| 小金县| 桐乡市| 新田县| 天峨县| 万州区| 台江县| 阳东县| 南丹县| 化州市| 广丰县| 虎林市| 湾仔区| 会泽县| 雅安市| 克拉玛依市| 于田县| 边坝县| 英德市| 定兴县| 江北区| 阿鲁科尔沁旗| 深圳市| 界首市| 武川县| 琼海市| 白山市| 新田县| 西安市| 洪湖市| 惠水县| 吉林省| 长兴县| 响水县|