vue2使用过滤器实现菜单栏文字动态显示


前言

左侧菜单栏有缩进,所以不同级别的菜单名可显示的文字数不同。顶部菜单栏是下拉框,所以文字是固定的


一、过滤器filters

由于filters不能使用this为undefined,所以要在过滤器中使用data或者computed的数据,有两种方式。无论哪种方式都需要在export default的上面写上let that;
参考:https://blog.csdn.net/qq_41926464/article/details/131453022

<script>
let that;
export default {
	name: 'test',
	data(){}
}
</script>

1.data数据

data() {
    return {
      test: this.testFun()
    };
  },
  methods: {
    testFun() {
      // data在filters之前执行
      that = this;
    },
  },
  filters: {
    // that就是this
    ellipsis(str) {
      console.log(that);
    }
  }

2.beforeCreate

beforeCreate() {
    that = this;
  },
  filters: {
    // that就是this
    ellipsis(str) {
      console.log(that);
    }
  }

二、菜单栏文字动态显示

<!-- 字数超长显示提示信息  这个是含有子集的菜单,就是有>的(文字超长的话>会遮盖在文字下面)。ellipsis(numTooltip)这样的话会有两个参数,第一个参数默认是要改的数据-->
        <el-tooltip v-if="item.label.length > labelNUmnum" :content="item.label" effect="light" placement="top">
          <span>{{item.label | ellipsis(tip)}}</span>
        </el-tooltip>
computed: {
// 主要针对左侧菜单有缩进,三级菜单显示4个字,默认最多展示七个字。顶部菜单无缩进/左侧菜单栏收起之后,默认展示11个字
    numTooltip() {
      let num = 7;
      if (this.type === 'side-item') {
        num -= this.level;
      } else {
        num = 11;
      }
      return num;
    }
 },
filters: {
    // 截取菜单文字,超出部分显示省略号
    // 我这里是采用的传参的方式
    ellipsis(str, numTooltip) {
      if (str.length > numTooltip) {
        return `${str.slice(0, numTooltip)}...`;
      }
      return str;
    }
  }

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-24 10:10:08       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-24 10:10:08       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-24 10:10:08       82 阅读
  4. Python语言-面向对象

    2024-04-24 10:10:08       91 阅读

热门阅读

  1. Element UI的el-table-column组件不支持v-show指令

    2024-04-24 10:10:08       32 阅读
  2. 什么是 XSS 攻击?

    2024-04-24 10:10:08       30 阅读
  3. Android kotlin创建App实例

    2024-04-24 10:10:08       41 阅读
  4. vs code使用SSH远程连接ubuntu

    2024-04-24 10:10:08       36 阅读
  5. C# 通过阿里云 API 实现企业工商数据查询

    2024-04-24 10:10:08       34 阅读
  6. 探索PyTorch与深度学习:从基础到实践

    2024-04-24 10:10:08       36 阅读
  7. TCP、UDP客户端

    2024-04-24 10:10:08       39 阅读
  8. 在 Windows 下搭建自己的深度学习开发环境

    2024-04-24 10:10:08       28 阅读
  9. ES6 - 语法糖

    2024-04-24 10:10:08       31 阅读