Vuex

是一个专为Vue.js应用程序开发的状态管理模式

数据丢失问题

vuex的数据是保存在运行内存中的,当页面刷新的时候,会重新加载vue实例,vuex里面的数据就会重新初始化重新赋值,所以值会丢失,一般借助sessionStorage和localStorage、cookie来解决这个问题

  • vuex的数据直接保存在sessionStorage和localStorage、cookie。例如:token保存在cookie中
  • 再次请求远程数据,动态刷新vuex数据。例如菜单信息
  • 页面刷新前,将vuex的数据保存在缓存中

状态管理模式

new Vue({
    // state
    data() {
        return {
            count: 0;
        }
    },
    // view
    template: `
        <div>{{ count }}</div>
    `,
    // actions
    methods: {
        increment() {
            this.count++
        }
    }
})
  • state:驱动应用的数据源
  • view:以声明方式将state映射到视图
  • actions:相应在view上的用户输入导致的状态变化

但是,当我们的应用遇到多个组件共享状态时,单向数据流的简洁性很容易被破坏:

  • 多个视图依赖于同一状态(继承)
  • 来自不同视图的行为需要改变同一状态(修改)

因此,把组件的共享状态抽取出来,以一个全局单例模式管理

results matching ""

    No results matching ""