美文网首页
[3]Mutations修改状态

[3]Mutations修改状态

作者: 你喜欢吃青椒吗_c744 | 来源:发表于2019-08-15 16:30 被阅读0次

资料来源于技术胖的个人网站

$store.commit( )

Vuex提供了commit方法来修改状态,我们粘贴出第一节课的代码内容,简单回顾一下,我们在button上的修改方法。

<button @click="$store.commit('add')">+</button>
<button @click="$store.commit('reduce')">-</button>
//store.js文件:
const mutations={
    add(state){
        state.count++;
    },
    reduce(state){
        state.count--;
    }
}

传值

这只是一个最简单的修改状态的操作,在实际项目中我们常常需要在修改状态时传值

<p>
   <button @click="$store.commit('add',10)">+</button>
   <button @click="$store.commit('reduce')">-</button>
</p>
const mutations={
    add(state,n){
        state.count+=n;
    },
    reduce(state){
        state.count--;
    }
}

模板获取Mutations方法(最实用)

实际开发中我们也不喜欢看到$store.commit( )这样的方法出现,我们希望跟调用模板里的方法一样调用。

例如:@click=”reduce” 就和没引用vuex插件一样。

要达到这种写法,只需要简单的两部就可以了:

  • 在模板count.vue里用import 引入我们的mapMutations
import { mapState,mapMutations } from 'vuex';
  • 在模板的<script>标签里添加methods属性,并加入mapMutations
 methods:mapMutations([
        'add','reduce'
]),

通过上边两步,我们已经可以在模板中直接使用我们的reduce或者add方法了,就像下面这样。

<button @click="reduce">-</button>

相关文章

网友评论

      本文标题:[3]Mutations修改状态

      本文链接:https://www.haomeiwen.com/subject/pvwzjctx.html