vuex 常用插件

原文链接: vuex 常用插件

上一篇: js 常用代码2

下一篇: js 面向对象

1. 状态持久化

vuex-persistedstate 使用浏览器的本地存储( local storage )对状态( state )进行持久化。这意味着刷新页面或关闭标签页都不会删除你的数据。

一个很好的例子就是购物车:如果用户不小心关闭了一个标签,他们可以重新打开并回到之前页面的状态。

将输入框中的数字保存在vuex中,但是如果用户刷新,关闭选项卡,关闭浏览器后,保存的状态会被重置为初始值,使用持久化插件,将数据保存在local storage中,即使关闭浏览器,也不会丢失数据

134502_TfmR_2856757.png143343_R0tn_2856757.gif

已经将数据保存到local storage中

134854_8OGx_2856757.png

2. 同步标签页、窗口

vuex-shared-mutations 可在不同的标签页之间同步状态。它通过 mutation 将状态储存到本地存储(local storage)来实现。选项卡、窗口中的内容更新时触发储存事件,重新调用 mutation ,从而保持状态同步。

140628_ffr3_2856757.png

140638_tbF1_2856757.png

3. 语言本地化

vuex-i18n 允许你轻松地用多种语言存储内容。让你的应用切换语言时更容易。

一个很酷的功能是你可以存储带有标记的字符串,比如 "Hello {name}, this is your Vue.js app." 。所有的翻译版本都会在标记的地方使用相同的字符串。

4. 管理多个加载状态

vuex-loading 有助于你管理应用中的多个加载状态。这个插件适用于状态变化频繁且复杂的实时应用程序。

5. 缓存操作

vuex-cache 可以缓存 Vuex 的 action 。例如,如果你从服务器检索数据,这个插件将在第一次调用该 action 时缓存结果,然后在之后的 dispatch 中,直接返回缓存的值。必要时清除缓存也很简单。

https://funteas.com/topic/5a1cd381827974186648cbae

组件代码,使用计算属性的set和get简化编码

<template>
  <div>
    <input type="number" v-model="num">
    {{
    num
    }}
  </div>
</template>

<script>
  export default {
    name: "vuex",
    computed: {
      num: {
        get() {
          console.log('get')
          return this.$store.state.num
        },
        set(data) {
          console.log('setter', data)
          this.$store.commit('save', data)
        }
      }
    }
  }
</script>

<style scoped>

</style>

store

import Vue from 'vue'
import createPersistedState from 'vuex-persistedstate'
import Vuex from 'vuex'
import createMutationsSharer from 'vuex-shared-mutations'

Vue.use(Vuex)

let state = {
  num: 1
}

let mutations = {
  save: (state, payload) => {
    state.num = payload
  }
}
const store = new Vuex.Store({
  state,
  mutations,
  // ...
  plugins: [
    createPersistedState(),
    createMutationsSharer({predicate: ['save',]})
  ]
})

export default store

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值