在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  PHP  HTML/ Vue: 創(chuàng)建的實例中調(diào)用函數(shù)為什么不用加前綴methods?

Vue: 創(chuàng)建的實例中調(diào)用函數(shù)為什么不用加前綴methods?

//html
<div id="app">
  <p>{{ count }}</p>
  <p>
    <button @click="increment">+</button>
    <button @click="decrement">-</button>
  </p>
</div>
//js
// make sure to call Vue.use(Vuex) if using a module system

const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
      increment: state => state.count++,
    decrement: state => state.count--
  }
})

new Vue({
  el: '#app',
  computed: {
    count () {
        return store.state.count
    }
  },
  methods: {
    increment () {
      store.commit('increment')
    },
    decrement () {
        store.commit('decrement')
    }
  }
})

在以上代碼中,

<button @click="increment">+</button>
<button @click="decrement">-</button>

為什么不是methods.increment()?

回答
編輯回答
賤人曾

vue中的methods、data...這些都是直接暴露在vue的構(gòu)造器中,你在實例化的時候,他們的this指向是你實例化的那個對象,你直接用this.方法就可以直接調(diào)用

2018年6月11日 15:51
編輯回答
蟲児飛

vue中的方法就是寫在methods中的啊,你在調(diào)用的時候直接寫方法名就好了,它是內(nèi)部注入進(jìn)去的,就比如你在data里定義一個字符串a(chǎn)rr,你在模板中寫的時候直接寫arr而不是data.arr

2018年1月11日 13:47
編輯回答
眼雜

因為 vue 自己做了處理,把 methods 里定義的屬性代理到了實例上。 vue 源碼:

clipboard.png

vm 就是當(dāng)前的實例。

2017年7月18日 12:52