子组件主动获取父组件的name值,vue-persist实现不同页面持久化存储数据

开发一个POS系统,做了一个表格组件,可实现表格列的排序,定位,显示隐藏的功能。有点不完美的地方就是,每次我打开页面的时候,没有保存上一次的设置。所以加了个保存的功能,将数据本地存储,实现每个POS机器的配置是不同的。没考虑keep-alive是因为POS的数据是不需要缓存的,如果缓存了还不好处理。vue-persist原理就是localStorage, sessionStorage, localforag。

子组件主动获取父组件的name值

this.$parent.$parent.$options.name

说明:
$parent 层级,确认好你的层级

使用vue-persist

安装

cnpm install --save vuex-persist

引入

import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import mutations from './mutations'
import state from './state'
// 上边是做参考用的,下边 VuexPersistence 才是引入的文件
import VuexPersistence from 'vuex-persist'

挂载

const store = new Vuex.Store({
  state,
  modules,
  getters,
  mutations,
  plugins: [
    new VuexPersistence({
      reducer: state => ({
        tableOption: state.tableOption // 这个就是存入localStorage的值
      })
    }).plugin
  ]
})
export default store

配置 state.js

const state = {
  tableOption: {} // 表格列配置项
}

配置 mutations.js

export default {
  SET_TABLEOPTION: (state, value) => {
    state.tableOption = value
  }
}

说明:
引入以及挂载的文件是在store文件夹下的index.js文件,这个要看你的目录结构设计

完成功能

created() {
    this.optopnListFun()
},
methods: {
    // 表格列配置存储
    locTableOption() {
      const name = this.$parent.$parent.$options.name
      this.$store.commit('SET_TABLEOPTION', Object.assign(this.$store.state.tableOption, { [name]: this.optionList }))
    },
    // 表格列操作
    optopnListFun() {
      // 表格列赋值判断,vuex中有值 就用vuex中的配置过的值; this.list是父组件传过来的默认表格列
      const name = this.$parent.$parent.$options.name
      this.optionList = this.$store.state.tableOption[name] || this.list
      this.locTableOption()
    }
}

结果

实现效果
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 7.5高级组件用法 本节会介绍组件的一些高级用法,这些用法在实际业务中不是很常用,但在独立组件开发时可能会...
    六个周阅读 493评论 0赞 9
  • vuex是一个状态管理模式,通过用户的actions触发事件,然后通过mutations去更改数据(你也可以说状态...
    Ming_Hu阅读 2,200评论 3赞 3
  • 前言 您将在本文当中了解到,往网页中添加数据,从传统的dom操作过渡到数据层操作,实现同一个目标,两种不同的方式....
    itclanCoder阅读 26,324评论 1赞 12
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 9,526评论 0赞 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 7,885评论 0赞 2

友情链接更多精彩内容