关于vuex状态管理模式架构

一。 什么是vuex

        集中存储管理所有组件的状态 并以相应的规则保证以一种可预测的方式发生变化。

      例子: 实现加减

      

 <p>{{count}}
      <button @click="inc">+</button>
      <button @click="dec">-</button>
 </p>

  

const store = new Vuex.Store({
   state: {
       count: 0
   },
   mutations: {
      inc: state => state.count++,
      dec: state => state.count--
   }
});
computed: {
  count() {
     return store.state.count;
   }
}, methods: { inc() { store.commit(
'inc'); }, dec() { store.commit('dec'); } }

触发点击事件==》 调用methods对应方法==》通过 store.commit 触发store中的mutations对应的方法来改变state属性==>数据驱动视图

 

当我们遇到 多个组件共享状态时 那么单向数据流可能不满足我们的需求

global event bus 小型页面数据共享 Vuex 大型

  需要多个数据时   用mapState对象生成计算属性

 import mystore from '@/vuex/mystore';
  // 引入mapState
  import { mapState } from 'vuex';

  export default {
    data () {
      return {
        msg: 'Hello world'
      }
    },
    computed: mapState({
      count: function(state) {
        return state.count;
      }
    }),
    /*
     引用mystore.js,store为数据仓库
     */
    store: mystore
  }

getters计算过滤操作

 

 

vuex允许我们在store中定义getters   

getter的返回值会根据它的依赖被缓存起来 只有依赖值发生改变才会重新计算

 

actions异步修改状态 mutations同步改变状态

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值