cari

Rumah  >  Soal Jawab  >  teks badan

vue dikira isu caching - Limpahan Tindanan

Saya membaca dokumen rasmi berkata:

computedmethods的区别是,computed会基于它们的依赖进行缓存,如果数据没法改变则computed刷新时不会重新执行,而methods akan dilaksanakan setiap kali.

Tetapi contoh yang saya tulis tidak seperti ini (contoh yang saya tulis adalah contoh rasmi).

html:

<p id="app">
    <p>{{methodsNow()}}</p>
    <p>{{computedNow}}</p>
</p>

javascript:

new Vue({
    el:'#app',
    data:{

    },
    methods:{
        methodsNow:function(){
            return new Date().toLocaleString();
        }
    },
    computed:{
        computedNow:function(){
            return new Date().toLocaleString();
        }
    }
});

Mari kita bincang, adakah saya menulis sesuatu yang salah di suatu tempat?

三叔三叔2804 hari yang lalu995

membalas semua(2)saya akan balas

  • 三叔

    三叔2017-06-12 09:33:36

    Contoh anda tidak membantu dalam menerangkan perbezaan antara keduanya. Tunjukkan kepada anda contoh ini: JSFiddle

    <p id="app">
      <!-- 每次点击时,显示的时间都不同 -->
      <button @click="showMethod">methodsNow</button>
    
      <!-- 每次点击时,显示的时间都相同 -->
      <button @click="showComputed">computedNow</button>
    </p>
    new Vue({
      el: '#app',
      data: {
        message: 'Hello Vue.js!'
      },
      methods:{
        methodsNow: function(){
          return new Date().toLocaleString();
        },
        showMethod: function() {
             alert(this.methodsNow());
        },
        showComputed: function() {
             alert(this.computedNow);
        }
      },
      computed:{
        computedNow: function(){
          return new Date().toLocaleString();
        }
      }
    })

    balas
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-06-12 09:33:36

    Anda akan faham selepas mengujinya seperti ini
    html:

    <p id="app">
        <p>{{methodsNow()}}</p>
        <p>{{computedNow}}</p>
        <p>{{methodsNow()}}</p>
        <p>{{computedNow}}</p>
    </p>
    

    javascript:

    new Vue({
        el:'#app',
        data () {
          return {
            mData: 1,
            cData: 2
          }
        },
        methods: {
          methodsNow: function () {
            console.log('methods')
            return this.mData
          }
        },
        computed: {
          computedNow: function () {
            console.log('computed')
            return this.cData
          }
        }
    });
    

    Akibatnya, anda mendapati bahawa computedNow dilaksanakan sekali dan methodNow dilaksanakan dua kali

    balas
    0
  • Batalbalas