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

深入淺析Vue.js中 computed和methods不同機(jī)制

 更新時(shí)間:2018年03月22日 16:47:04   作者:liangyuqi  
這篇文章給大家介紹了Vue.js中 computed和methods不同機(jī)制,在vue.js中,methods和computed兩種方式來(lái)動(dòng)態(tài)當(dāng)作方法使用,文中還給大家提到了computed和methods的區(qū)別,感興趣的朋友一起看看吧

在vue.js中,有methods和computed兩種方式來(lái)動(dòng)態(tài)當(dāng)作方法來(lái)用的

1.首先最明顯的不同 就是調(diào)用的時(shí)候,methods要加上()

2.我們可以使用 methods 來(lái)替代 computed,效果上兩個(gè)都是一樣的,但是 computed 是基于它的依賴緩存,只有相關(guān)依賴發(fā)生改變時(shí)才會(huì)重新取值。

而使用 methods ,在重新渲染的時(shí)候,函數(shù)總會(huì)重新調(diào)用執(zhí)行

為了方便理解,先上一段源碼

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>title</title>
    <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script>
  </head>
  <body>
    <div class="test">  <!--computed計(jì)算屬性-->
      <p>{{now}}</p>
      <p>{{now}}</p>
      <p>{{now}}</p>
      <p>{{now}}</p>
      <hr />      <!--橫線分割-->
</div>
    <div class="test2">  <!--methods方法,注意new()加了括號(hào)-->
      <p>{{now()}}</p>
      <p>{{now()}}</p>
      <p>{{now()}}</p>
      <p>{{now()}}</p>
    </div>
  </body>
  <script type="text/javascript">
    var myVue = new Vue({
      el: ".test",
      computed: {
        now: function() {
          var yanshi = 0;
          for(var o = 0; o < 2000; o++) {   //延時(shí)
            for(var q = 0; q < 2000; q++) {
              yanshi++;
            }
          }
          return Date.now()
        }
      }
    });
    var vue2 = new Vue({
      el: '.test2',
      methods: {
        now: function() {
          var yanshi = 0;
          for(var o = 0; o < 2000; o++) {
            for(var q = 0; q < 2000; q++) {
              yanshi++;
            }
          }
          return Date.now()
        }
      }
    })
  </script>
</html>

運(yùn)行結(jié)果如上,可以看出computed計(jì)算屬性的話,每次進(jìn)入頁(yè)面將一直沿用第一次的信息,不會(huì)再觸發(fā)now,這就是依賴緩存。(有延時(shí)的情況下 多次輸出時(shí)間相同)

那什么是相關(guān)依賴發(fā)生改變時(shí)才會(huì)重新取值呢 比方說(shuō)reversedMessage function()計(jì)算屬性中調(diào)用了message變量

就意味著只要 message 還沒(méi)有發(fā)生改變,多次訪問(wèn) reversedMessage 計(jì)算屬性會(huì)立即返回之前的計(jì)算結(jié)果,而不必再次執(zhí)行函數(shù)。

而methods是實(shí)時(shí)的,在重新渲染時(shí),函數(shù)總會(huì)重新調(diào)用執(zhí)行,不會(huì)緩存,(多次輸出時(shí)間不同)

可以說(shuō)使用 computed 性能會(huì)更好,但是如果你不希望緩存,你可以使用 methods 屬性。

computed 屬性默認(rèn)只有 getter ,不過(guò)在需要時(shí)你也可以提供一個(gè) setter :所以其實(shí)computed也是可以傳參的。

ps:下面看下vue計(jì)算屬性computed和methods的區(qū)別

在new Vue的配置參數(shù)中的computed和methods都可以處理大量的邏輯代碼,但是什么時(shí)候用哪個(gè)屬性,要好好區(qū)分一下才能做到正確的運(yùn)用vue。
computed稱為計(jì)算屬性,顧名思義,計(jì)算就要返回一個(gè)計(jì)算的結(jié)果,所以,當(dāng)我們要處理大量的邏輯,但是最后要取得最后的結(jié)果的時(shí)候可以用computed;
簡(jiǎn)單示例:
要求:
<input type="text v-model="num1"><input type="text v-model="num2">
現(xiàn)在要返回num1和num2的和;
<script>
  new Vue({
    el:"#box",
    data:{
        num1:0,
        num2:0
        }
    computed:{  
        result:function(){
            return this.num1 + this.num2  
            // 計(jì)算屬性必須有一個(gè)返回值
        }
    }
   })
</script>
methods:是方法的意思,在js中,我們把一些函數(shù)叫做方法,一般情況下,要觸發(fā)這個(gè)方法就要執(zhí)行,要執(zhí)行就要有一個(gè)源來(lái)觸發(fā),所以就需要一個(gè)事件源。這是和computed的一點(diǎn)不同之處;
methods的示例:
要求:
<\button @click="do()">點(diǎn)擊彈出<\/button>
<script>
  new Vue({
    el:"#box",
    data:{
        num1:0,
        num2:0
        }
    methods:{  
        do:function(){
           alert('ok')
           //這里根據(jù)情況,可以返回有返回值也可以沒(méi)有返回值。
        }
    }
   })
</script>
對(duì)比computed 和 methods:
computed計(jì)算的結(jié)果如果不發(fā)生改變就不會(huì)觸發(fā)result這個(gè)函數(shù)。而methods中一般都是定義的需要事件觸發(fā)的一些函數(shù)。每次只要觸發(fā)事件,就會(huì)執(zhí)行對(duì)應(yīng)的方法。如果把computed中的方法寫(xiě)到method中會(huì)浪費(fèi)性能。
computed必須返回一個(gè)值頁(yè)面綁定的才能取得值,而methods中可以只執(zhí)行邏輯代碼,可以有返回值,也可以沒(méi)有。

總結(jié)

以上所述是小編給大家介紹的Vue.js中 computed和methods不同機(jī)制,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • vue ElementUI的from表單實(shí)現(xiàn)登錄效果的示例

    vue ElementUI的from表單實(shí)現(xiàn)登錄效果的示例

    本文主要介紹了vue ElementUI的from表單實(shí)現(xiàn)登錄效果的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vue接入下載文件接口問(wèn)題

    vue接入下載文件接口問(wèn)題

    這篇文章主要介紹了vue接入下載文件接口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 使用D3.js+Vue實(shí)現(xiàn)一個(gè)簡(jiǎn)單的柱形圖

    使用D3.js+Vue實(shí)現(xiàn)一個(gè)簡(jiǎn)單的柱形圖

    這篇文章主要介紹了使用D3.js+Vue實(shí)現(xiàn)一個(gè)簡(jiǎn)單的柱形圖,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • Vue3快速diff算法的處理過(guò)程

    Vue3快速diff算法的處理過(guò)程

    傳統(tǒng)的?DOM?更新方法會(huì)在有新舊子節(jié)點(diǎn)時(shí)卸載舊節(jié)點(diǎn)并掛載新節(jié)點(diǎn),這種方法沒(méi)有考慮到節(jié)點(diǎn)的復(fù)用可能性,diff?算法通過(guò)比較新舊節(jié)點(diǎn)的差異來(lái)復(fù)用節(jié)點(diǎn),從而優(yōu)化性能,本文給大家介紹了Vue3快速diff算法的處理過(guò)程,需要的朋友可以參考下
    2024-05-05
  • Vuejs從數(shù)組中刪除元素的示例代碼

    Vuejs從數(shù)組中刪除元素的示例代碼

    這篇文章主要介紹了Vuejs從數(shù)組中刪除元素的示例代碼,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • vue-pdf插件實(shí)現(xiàn)pdf文檔預(yù)覽方式(自動(dòng)分頁(yè)預(yù)覽)

    vue-pdf插件實(shí)現(xiàn)pdf文檔預(yù)覽方式(自動(dòng)分頁(yè)預(yù)覽)

    這篇文章主要介紹了vue-pdf插件實(shí)現(xiàn)pdf文檔預(yù)覽方式(自動(dòng)分頁(yè)預(yù)覽),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • vue2 拖動(dòng)排序 vuedraggable組件的實(shí)現(xiàn)

    vue2 拖動(dòng)排序 vuedraggable組件的實(shí)現(xiàn)

    這篇文章主要介紹了vue2 拖動(dòng)排序 vuedraggable組件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • vue3利用customRef實(shí)現(xiàn)防抖

    vue3利用customRef實(shí)現(xiàn)防抖

    防抖就是對(duì)于頻繁觸發(fā)的事件添加一個(gè)延時(shí)同時(shí)設(shè)定一個(gè)最小觸發(fā)間隔,防抖大家都學(xué)過(guò),但是如何在?Vue3?里中將防抖做到極致呢,下面小編就來(lái)和大家詳細(xì)講講
    2023-10-10
  • vant之關(guān)于van-list的使用以及一些坑的解決方案

    vant之關(guān)于van-list的使用以及一些坑的解決方案

    這篇文章主要介紹了vant之關(guān)于van-list的使用以及一些坑的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • vue中修改瀏覽器圖標(biāo)和名字的幾種方式

    vue中修改瀏覽器圖標(biāo)和名字的幾種方式

    當(dāng)針對(duì)不同客戶需要提供不同的圖標(biāo)時(shí),頁(yè)面其他圖標(biāo)好替換,但是網(wǎng)頁(yè)圖標(biāo)就不太一樣了,下面這篇文章主要給大家介紹了關(guān)于vue中修改瀏覽器圖標(biāo)和名字的幾種方式,需要的朋友可以參考下
    2022-10-10

最新評(píng)論