在 Vue 中手写一个微型 Vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,在vue项目中,有些数据需要在很多组件内进行传递,为了方便管理和维护,我们就需要这样一个工具来管理这些数据,通常情况下我们就会选择Vuex。

但是正如Vuex官网所说:

Vuex 可以帮助我们管理共享状态,并附带了更多的概念和框架。这需要对短期和长期效益进行权衡。如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。确实是如此——如果您的应用够简单,您最好不要使用 Vuex。

但是当我需要这样一个工具又不想变得冗余繁琐怎么办呢,这时我们可以使用Vue(v2.6+)中提供的 Vue.observable API手写一个微型的Vuex。

创建 store

import Vue from 'vue'
// 使用 Vue.observable 创建一个响应对象
export const store = Vue.observable({
  user: {},
  power: []
})
// 创建 mutations 来改变数据
export const mutations = {
  setUser(user) {
    store.user = user
  },
  setPower(power) {
    store.power = power
  }
}
    
在组件中使用

<template>
  <span>
    {{ user.name }}
  </span>
</template>
<script>
  import { store, mutations } from '../store'
  export default {
    computed: {
      user() {
        return store.user
      }
    },
    created() {
        mutations.setUser({
        name: '恩佐'
      })
    }
  }
</script>
    

这样我们就有了一个微型的状态管理工具,在上面基础上加强也可以用来应对相对复杂的逻辑,另外也可以看一下Vue官网所写的store模式。


THE END

感谢阅读

公众号为首发平台,关注不迷路,找到组织一起进步

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值