美文网首页
vuex最简单使用

vuex最简单使用

作者: 明人不放按屁 | 来源:发表于2020-04-16 18:07 被阅读0次

vuex,即vue里面的一个插件,使用场景:需要一个购物车功能,可能有多个组件会调用到这个购物车功能,在首页添加了一个商品,在详情页是也要看到添加的商品。这个时候组件传值就不方便,使用vuex存储这个购物车的数据,然后每个组件调用出来,就十分方便。
最简单的示例(文件均运行在vuecli中,默认main.js已经引用):
store.js,即vuex文件

export default new Vuex.Store({
    state: { //初始值,前端可直接调用
        huanggua: 0,
        xigua: 0
    },
    mutations: { //事件触发的操作,前端调用,操作购物车增加
        addHG(state) {
            state.huanggua++
        },
        addXI(state) {
            state.xigua++
        }
    },
        actions: {//跟上面一样,函数方法,但这个异步
        asyncInrement(context) {
            return new Promise(resolve => {
                setTimeout(() => {
                    context.commit('addHG');
                    resolve();
                }, 1000)
            });
        }
    },
    modules: {

    }
})

index.vue

<template>
    <div>
           <router-link to="list">去列 表页</router-link> 
            <p>
                <span>黄瓜</span>  
                <i>{{huanggua}}</i>
                <button @click="asyncIncrementByAction" value="">添加</button>
            </p>
            <p>
                <span>西瓜</span>  
                <i>{{xigua}}</i>
                <button @click="AddXI" value="">添加</button>
            </p>
        </div>
</template>

<script>
export default {
    methods:{//发送方法到vuex
      asyncIncrementByAction() {
        this.$store.dispatch('asyncInrement').then(() => {
          console.log(this.$store.state.huanggua);

        })
      },
        AddXI() {
            this.$store.commit('addXI')
        }
    },
    computed:{//接收vuex数据
        huanggua(){
            return this.$store.state.huanggua
        },
        xigua(){
            return this.$store.state.xigua
        }
    },
}
</script>



列表页调用购物车数据,只要首页增加了,列表页也会增加。如果列表也调用了方法,添加后首页数据也会变。

<template>
    <div>
        <p>
            <span>黄瓜</span>  
            <i>{{huanggua}}</i>
        </p>
        <p>
            <span>西瓜</span>  
            <i>{{xigua}}</i>
        </p>
    </div>
</template>

<script>
export default {
    computed:{//接收数据
        huanggua(){
            return this.$store.state.huanggua
        },
        xigua(){
            return this.$store.state.xigua
        }
    },
}
</script>


注:modules可以让每个模块拥有自己的state、mutation、action、getters, 使得结构非常清晰

//不使用module
export default new Vuex.Store({
   state:{
            params1:'',
            params2:'',
            params3:'',
            params4:'',
            params5:'',
            .....
            //如果项目大会有很多很多个
}
});

//使用module
export default new Vuex.Store({
    modules: {
        moduleA,
        moduleB,
    }
});

//module通过import引入进来
moduleA={
    state:{
             params1:'',
            params2:'',
   }

moduleB={
    state:{
             params3:'',
            params4:'',
   }

}

相关文章

  • vuex入门详解

    vuex最简单、最详细的入门文档 vuex最简单、最详细的入门文档 如果你在使用 vue.js , 那么我想你可能...

  • vuex最简单使用

    vuex,即vue里面的一个插件,使用场景:需要一个购物车功能,可能有多个组件会调用到这个购物车功能,在首页添加了...

  • 通过一个简单实例了解vuex

    简单说明 什么是vuex,vuex怎么使用,什么场景下适合使用vuex, vuex 文档中都有介绍。看完文档之后,...

  • vuex入门

    vuex最简单、最详细的入门文档

  • vuex基础用法

    简单汇总一下vuex的最基础的用法 服务端渲染的写法(推荐使用)

  • vuex使用记录

    副标题:vuex使用详解、vue使用全局变量、vue使用 store 这篇博客主要记录了 vuex的使用方法,简单...

  • vuex简单使用

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,本文会介绍怎么使用vuex,比较简单,如果想对vu...

  • vuex简单使用

    https://vuex.vuejs.org/zh/installation.html[https://vuex....

  • vuex简单使用

    vuex是一个数据集中管理的库,在数据量庞大并且涉及到多个组件之间交互使用数据的时候,他就可以派上用场,完美的解决...

  • Vuex简单使用

    一、初始化Vuex Vuex[https://vuex.vuejs.org/zh/]是一个专为 Vue.js 应用...

网友评论

      本文标题:vuex最简单使用

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