使用Vue的filters(本地)或filter(全局)过滤常用数据类型

简介: 使用Vue的filters(本地)或filter(全局)过滤常用数据类型


情况一:后台给的日期是Sat Jul 31 2021 21:50:01 GMT+0800 (中国标准时间),如果直接呈现给用户,他们一定会吐槽你不说人话~~~

情况二:后台给的百分数是小数没有转化成00%格式

采用vue的过滤机制就可以解决这种情况,有两种方式:

第一种:全局写法,在main.js里面加入

// 【全局过滤】----------------------------------------
//转换情况一的日期
Vue.filter('yyyy_MM_dd', v => {
    if (v) return new Date(v)
        .toLocaleString("zh-Hans-CN", {
            year: "numeric",
            month: "2-digit",
            day: "2-digit",
        }).replace(/\//g, "-");
    else return '';
});
//转换情况二的百分数
Vue.filter('percent', v => {
    if (v) return `${parseFloat((v * 100).toFixed(2))}%`;
    else return 0;
});

第二种:本地写法,在vue文件页面的<script></script>里面加入

  filters: {
    //转换情况一的日期
    yyyy_MM_dd: (v) => {
      if (v)
        return new Date(v)
          .toLocaleString("zh-Hans-CN", {
            year: "numeric",
            month: "2-digit",
            day: "2-digit",
          })
          .replace(/\//g, "-");
      else return "";
    },
    //转换情况二的百分数
    percent: (v) => {
      if (v) return Math.abs(v.toFixed(2)) + "%";
      else return 0;
    },
  },

然后在绑定对应数据的地方用竖线“|”跟上对应的过滤方法就可以了

{{ 日期 | yyyy_MM_dd }}
{{ 小数 | percent }}
/*额外知识:
过滤器还支持串联,也就是多个 | filterName | filterName | ... 这样可以综合在一起使用多个过滤功能。
过滤器是 JavaScript 函数,因此可以接收参数:
{{ string | filter('参数1', 参数2) }}
这里,filter被定义为接收三个参数的过滤器函数。其中 string 的值作为第一个参数,普通字符串 '参数1' 作为第二个参数,表达式 参数2 的值作为第三个参数。
*/


相关文章
|
25天前
|
JavaScript 前端开发
vue filters过滤器传多个参数
这段内容展示了如何在HTML和JavaScript中使用过滤器(filter)。在HTML中,通过`{{变量 | 过滤器名(参数)}}`的方式传递参数给过滤器。在JavaScript中,定义过滤器函数并接收参数,如`filterAa(aa, bb, cc)`,其中`aa`, `bb`, `cc`分别代表过滤器接收到的第1至第3个参数。示例逐步演示了传1个、2个到3个参数给过滤器的过程。
30 1
|
2月前
|
JavaScript
【Vue】过滤器Filters
【Vue】过滤器Filters
|
2月前
|
JavaScript
vue的filters筛选器获取this使用
vue的filters筛选器获取this使用
78 0
|
2月前
|
JavaScript 前端开发
Vue过滤器(filters)的简单使用
Vue过滤器(filters)的简单使用
|
2月前
|
存储 JavaScript
vue使用.filter方法检索数组中指定时间段内的数据
vue使用.filter方法检索数组中指定时间段内的数据
59 0
|
9月前
|
JavaScript
【vue用法】Vue过滤器 filter
【vue用法】Vue过滤器 filter
57 0
|
11月前
|
JavaScript
Vue 过滤器 filter
Vue 过滤器 filter
|
JavaScript 索引
vue 数组处理= 循环--查找过滤--添加删除--去重[.every()/.some()/.find()/.filter()/.forEach()/.map()]
vue 数组处理= 循环--查找过滤--添加删除--去重[.every()/.some()/.find()/.filter()/.forEach()/.map()]
244 0
vue 数组处理= 循环--查找过滤--添加删除--去重[.every()/.some()/.find()/.filter()/.forEach()/.map()]
|
JavaScript
vue里filters为什么获取不到this?
vue里filters为什么获取不到this?
116 0
vue里filters为什么获取不到this?
|
JavaScript 前端开发
Vue3不支持Filters过滤器
Vue3不支持Filters过滤器
299 0