vuex的实用简单案例

什么是vuex

官网解释:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
其实vuex就是,用这个组件来储存我们不同vue组价的值,可以实现任意组价的页面数据共享

为什么要使用vuex?

vue是怎么实现组件数据共享

你肯定听说过父子组件,那你也应该知道,组件之家的数据共享是在父子组价中完成的。但是如果有的组价是这样的呢?
在这里插入图片描述
我要在组件A和B之间进行数据共享,这个利用父子组价就可以完成。
但是我现在假如有这样的一个需求,我要在B组价和F组价之间进行数据共享,按照父子组价传值的思路,我们要把B中的数据传递给A→APP→D→E→F。这样的父子组件之间传值。

vuex进行数据共享

在这里插入图片描述
现在如果用了vuex,你就可以按需求直接在B组件和F组件中导入vuex,这样就可以利用vuex这个媒介,进行任意界面的数据共享

怎么用

搭建vue脚手架,安装vuex依赖

npm install vuex --save

在项目目录(src)下创建store目录和store.js文件

理解store.js中store对象要包含的四个属性

state

  • 介绍:提供的唯一的公共数据接口,所有共享的数据都要放到store中的state中进行存储
  • 使用:
    1. import {mapState} from 'vuex'
      computed:{
      ...mapState(['count'])
      }
      
      在template中使用{{count}},可以直接调用
      
    2. 在template中使用{{$store.state.count}},可以直接调用

mutation

  • 介绍: 提供设置存储state数据的方式

  • 注意:

    • 只有通过mutation变更store中国的数据,不可以直接操作store中的数据
    • 通过这种方式虽然操作起来稍微繁琐一点,但是可以集中监控所有的数据变化
  • 使用
    1.

      ```
      	   import {mapAction} from 'vuex'
      	    computed:{
      	    ...mapAction(['add'])//用mapMutations方法见add方法设为全局
      	    }
      	    在methods中可以直接调用this.add的方法
      ```
    
    1. 在methods中可以直接调用this.$store.dispatch(‘add’,3)的方法

action

  • 介绍:在这里面写异步的方法
  • 使用:
    1.
    import {mapMutations} from 'vuex'
    computed:{
    ...mapMutations(['add'])//用mapMutations方法见add方法设为全局
    }
    
    在methods中可以直接调用this.add的方法
    
    1. 在methods中可以直接调用this.$store.commit(‘add’,3)的方法

getter

  • 介绍:不会改表states中的数据只会包装states中的数据

  • 使用:

    import {mapGetters} from 'vuex'
    computed:{
    ...mapGetters(['count'])
    }
    
    在template中使用{{count}},可以直接调用
    
    
    getter:{
        showNum(state){
            return '当前的数据是:'+state.count+''
        }
    }
    
    1. 在template中使用{{$store.getters.名称}},可以直接调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值