Avue的表格列表的列显示隐藏持久化存储

文章介绍了在Vue中使用混入(mixins)进行功能复用,特别是在处理表格列显隐持久化时的方法。通过混入对象,可以将功能添加到多个组件中,当组件数据与混入对象的选项冲突时,组件数据优先。在`created`生命周期钩子中从本地缓存加载数据,在`watch`中监听变化并保存到本地,实现配置的存储和读取。
摘要由CSDN通过智能技术生成

这里选择通过混入方式,也可以直接写在所需要的组件内部,也可以全局混入(但是不建议,怕对现有系统功能造成影响,需谨慎!!)

原理:所有混入对象的选项将被混入该组件本身的选项。

特性:发生冲突时以组件数据优先,即发生冲突会覆盖混入对象的选项。组件使用mixins中的属性或者方法,当改变mixins的属性值或者方法内部的一些逻辑操作时,只会在当前组件中起作用而并不会改变混入对象的属性值或者方法。

1.创建需要混入的对应文件 optionColumn.js

import { mapGetters } from 'vuex'
// Avue 表格列表的列显隐持久化
export const  optionColumnMixin={
  computed: {
    ...mapGetters(['userInfo'])
  },
  watch: {
    //点击列显隐存储配置至本地缓存
    option: {
      handler(newVal) {
        console.log("混入 watch")
        // 根据自身需求设置唯一key,这里针对当前用户
        localStorage.setItem( this.userInfo.account + '_' + this.$route.path, JSON.stringify(newVal.column))
      },
      deep: true
    },
  },
  created() {
    console.log("混入 created")
    let option = localStorage.getItem(this.userInfo.account + "_" + this.$route.path);
    if (option != null && option != "" && option != undefined) {
      this.option.column = JSON.parse(option);
    }
  },
};

2.在需要调用的组件页面中引入optionColumn.js文件

import {optionColumnMixin} from "@/mixins/optionColumn";
export default {
  mixins: [optionColumnMixin]
  data() {
    return {};
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值