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

vue.js中methods watch和computed的區(qū)別示例詳解

 更新時間:2021年08月05日 15:16:03   作者:YaYa  
methods,watch和computed都是以函數(shù)為基礎(chǔ)的,但各自卻都不同,這篇文章主要給大家介紹了關(guān)于vue.js中methods watch和computed區(qū)別的相關(guān)資料,需要的朋友可以參考下

前言

這篇文章主要簡述vue中的watch和computer區(qū)別,還有methods

首先,先說一下這幾個不同在哪里,那當然是長得不一樣啦~~~,

哈哈哈哈哈不開玩笑了,截下來進入正題。

介紹

methods : 掛載在對象上的函數(shù),通常是 Vue 示例本身 或 Vue 組件

computer:屬性看起來像一個方法,但其實不是,在 Vue 中我們一般使用 data 來跟蹤對特性屬性的更改。計算屬性允許我們定義一個與數(shù)據(jù)使用相同方式的屬性,但也可以有一些基于其依賴關(guān)系的自定義邏輯。你可以考慮計算屬性的另一個視圖到你的數(shù)據(jù)。

watch:這些可以讓你了解反應(yīng)系統(tǒng)(Reactivity System)。我們提供了一些鉤子來觀察Vue存儲的任何屬性。如果我們想在每次發(fā)生變化時添加一些功能,或者響應(yīng)某個特定的變化,我們可以觀察一個屬性并應(yīng)用一些邏輯。這意味著觀察者的名字必須與我們所觀察到的相符。

僅憑這幾句話不能講清楚這三者之間的區(qū)別,接下來我們上例子:

一、作用機制上

computed\watch:watch和computed都是以Vue的依賴追蹤機制為基礎(chǔ)的,它們都試圖處理這樣一件事情:當某一個數(shù)據(jù)(稱它為依賴數(shù)據(jù))發(fā)生變化的時候,所有依賴這個數(shù)據(jù)的“相關(guān)”數(shù)據(jù)“自動”發(fā)生變化,也就是自動調(diào)用相關(guān)的函數(shù)去實現(xiàn)數(shù)據(jù)的變動。

methods:methods里面是用來定義函數(shù)的,很顯然,它需要手動調(diào)用才能執(zhí)行。而不像watch和computed那樣,“自動執(zhí)行”預(yù)先定義的函數(shù)。

【小結(jié)】:·methods·里面定義的函數(shù),是需要主動調(diào)用的,而和watch和computed相關(guān)的函數(shù),會自動調(diào)用,完成我們希望完成的作用。

二、從性質(zhì)上

1、methods里面定義的是函數(shù),你顯然需要像"fuc()"這樣去調(diào)用它(假設(shè)函數(shù)為fuc)。

2、computed是計算屬性,事實上和和data對象里的數(shù)據(jù)屬性是同一類的(使用上)

例如:

computed:{
   fullName: function () { return  this.firstName + lastName }
} 

你在取用的時候,用this.fullName去取用,就和取data一樣(不要當成函數(shù)調(diào)用!?。?/p>

3、watch:類似于監(jiān)聽機制+事件機制

例如:

watch: {
   firstName: function (val) {  this.fullName = val + this.lastName }
}

firstName的改變是這個特殊“事件”被觸發(fā)的條件,而firstName對應(yīng)的函數(shù)就相當于監(jiān)聽到事件發(fā)生后執(zhí)行的方法。

三、watch和computed的對比

watch computed
一個數(shù)據(jù)影響多個數(shù)據(jù) 一個數(shù)據(jù)受多個數(shù)據(jù)影響
blockchain blockchain

watchcomputed一個數(shù)據(jù)影響多個數(shù)據(jù)一個數(shù)據(jù)受多個數(shù)據(jù)影響

四、methods不處理數(shù)據(jù)邏輯關(guān)系,只提供可調(diào)用的函數(shù)

相比于watch/computed,methods不處理數(shù)據(jù)邏輯關(guān)系,只提供可調(diào)用的函數(shù)

new Vue({
  el: '#app',
  template: '<div ><p>{{ say() }}</p></div>',
  methods: {
    say: function () {
      return '我在他鄉(xiāng)挺好的'
    }
  }
})

五、從功能的互補上看待methods,watch和computed的關(guān)系

在很多時候,computed是用來處理你使用watch和methods的時候無法處理,或者是處理起來并不太恰當?shù)那闆r的
利用computed處理methods存在的重復(fù)計算情況

1.methods里面的函數(shù)就是一群“耿直Boy”,如果有其他父函數(shù)調(diào)用它,它會每一次都“乖乖”地執(zhí)行并返回結(jié)果,即使這些結(jié)果很可能是相同的,是不需要的

2.而computed是一個“心機Boy”,它會以Vue提供的依賴追蹤系統(tǒng)為基礎(chǔ),只要依賴數(shù)據(jù)沒有發(fā)生變化,computed就不會再度進行計算

六、利用computed處理watch在特定情況下代碼冗余的現(xiàn)象,簡化代碼

總結(jié)

computed

  1. computed 屬性值會默認走緩存,計算屬性是基于它們的響應(yīng)式依賴進行緩存的,也就是基于data中聲明過的數(shù)據(jù)通過計算得到的
  2. 如果一個屬性是由其他屬性計算而來的,這個屬性依賴其他屬性,是一個多對一或者一對一,一般用computed
  3. 如果computed屬性屬性值是函數(shù),那么默認會走get方法;函數(shù)的返回值就是屬性的屬性值;在computed中的,屬性都有一個get和一個set方法,當數(shù)據(jù)變化時,調(diào)用set方法。
  4. computed計算屬性是根據(jù)依賴關(guān)系進行緩存的計算,并且只在需要的時候進行更新。

watch

監(jiān)聽的函數(shù)接收兩個參數(shù),第一個參數(shù)是最新的值;第二個參數(shù)是輸入之前的值;

computed(計算屬性) watch(偵聽屬性)
支持緩存,只有依賴數(shù)據(jù)發(fā)生改變,才會重新進行計算 不支持緩存,數(shù)據(jù)變,直接會觸發(fā)相應(yīng)的操作;
不支持異步,當computed內(nèi)有異步操作時無效,無法監(jiān)聽數(shù)據(jù)的變化 watch支持異步;

好了,到此這篇關(guān)于vue.js中methods watch和computed區(qū)別的文章就介紹到這了,更多相關(guān)vue中methods watch和computed區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue基礎(chǔ)語法知識梳理上篇

    Vue基礎(chǔ)語法知識梳理上篇

    這篇文章主要介紹了Vue基礎(chǔ)語法知識梳理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-12-12
  • Vue 使用formData方式向后臺發(fā)送數(shù)據(jù)的實現(xiàn)

    Vue 使用formData方式向后臺發(fā)送數(shù)據(jù)的實現(xiàn)

    這篇文章主要介紹了Vue 使用formData方式向后臺發(fā)送數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • vue實現(xiàn)下拉加載其實沒那么復(fù)雜

    vue實現(xiàn)下拉加載其實沒那么復(fù)雜

    這篇文章主要給大家介紹了關(guān)于vue實現(xiàn)下拉加載的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • vue子元素綁定的事件, 阻止觸發(fā)父級上的事件處理方式

    vue子元素綁定的事件, 阻止觸發(fā)父級上的事件處理方式

    這篇文章主要介紹了vue子元素綁定的事件, 阻止觸發(fā)父級上的事件處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 原生Vue 實現(xiàn)右鍵菜單組件功能

    原生Vue 實現(xiàn)右鍵菜單組件功能

    這篇文章主要介紹了Vue 原生實現(xiàn)右鍵菜單組件功能,本文給大家擴展知識點vue點擊菜單以外區(qū)域,隱藏菜單操作,通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2019-12-12
  • vue2中vue.config.js簡單配置代理跨域的方法

    vue2中vue.config.js簡單配置代理跨域的方法

    在前后端的開發(fā)中總是難免會遇到前后端的跨域問題,下面這篇文章主要給大家介紹了關(guān)于vue2中vue.config.js簡單配置代理跨域的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • vue3+ts使用APlayer的示例代碼

    vue3+ts使用APlayer的示例代碼

    這篇文章主要介紹了vue3+ts使用APlayer的示例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • 在Vue組件化中利用axios處理ajax請求的使用方法

    在Vue組件化中利用axios處理ajax請求的使用方法

    這篇文章主要給大家介紹了在Vue組件化中利用axios處理ajax請求的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。
    2017-08-08
  • ElementUI中el-table表格組件如何自定義表頭

    ElementUI中el-table表格組件如何自定義表頭

    最近需要做一個el-table的表格,表頭需要顯示提示信息,本文主要介紹了ElementUI中el-table表格組件如何自定義表頭,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • VueX安裝及使用基礎(chǔ)教程

    VueX安裝及使用基礎(chǔ)教程

    這篇文章介紹了VueX安裝及使用基礎(chǔ)教程,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01

最新評論

华蓥市| 余庆县| 田林县| 盐源县| 建德市| 井冈山市| 外汇| 开远市| 宜城市| 略阳县| 油尖旺区| 旺苍县| 繁峙县| 嘉祥县| 民丰县| 策勒县| 台东县| 山阳县| 新化县| 柞水县| 大埔区| 敦化市| 香港| 黑龙江省| 湘潭县| 天柱县| 黄平县| 南丹县| 思茅市| 甘谷县| 鄢陵县| 兴和县| 阳泉市| 皮山县| 于田县| 凌海市| 九江市| 芮城县| 临潭县| 邻水| 类乌齐县|