zoukankan      html  css  js  c++  java
  • vue 中全局filter过滤器的配置及使用

    在项目中使用到的经常用到过滤器,比如时间,数据截取等过滤器,如果在每个.vue中都可以复制同一个过滤器,这可以达到目的,但是遇到方法有bug时就需要诸葛修改进入不同的页面修改,这样既费时又费力,优先可以考虑注册全局的过滤器。

     定义方法如下:

    新建filters/index.js

    const isNullOrEmpty = function(val) {
        if (val == null || val == "" || typeof(val) == undefined) {
            return true;
        } else {
            return false;
        }
    }
    
    const timeFormat = (value, format) => {
        let date = new Date(value);
        let y = date.getFullYear();
        let m = date.getMonth() + 1;
        let d = date.getDate();
        let h = date.getHours();
        let min = date.getMinutes();
        let s = date.getSeconds();
        let result = "";
        if (format == undefined) {
            result = `${y}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d} ${
            h < 10 ? "0" + h : h
          }:${min < 10 ? "0" + min : min}:${s < 10 ? "0" + s : s}`;
        }
        if (format == "yyyy-mm-dd") {
            result = `${y}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d}`;
        }
        if (format == "yyyy-mm") {
            result = `${y}-${m < 10 ? "0" + m : m}`;
        }
        if (format == "mm-dd") {
            result = ` ${mm < 10 ? "0" + mm : mm}:${ddmin < 10 ? "0" + dd : dd}`;
        }
        if (format == "hh:mm") {
            result = ` ${h < 10 ? "0" + h : h}:${min < 10 ? "0" + min : min}`;
        }
        if (format == "yyyy") {
            result = `${y}`;
        }
        return result;
    };
    
    
    export {
        isNullOrEmpty,
        timeFormat
    }
    

     在main.js中引入和注册全局过滤器

    import * as filters from '../filters/index'
    Object.keys(filters).forEach(key => {
        Vue.filter(key, filters[key])
    })

    此时就可以在不同的.vue中使用定义的全局过滤器了

    {{date|isNullOrEmpty}}是否为空<br/>
            {{date|timeFormat('yyyy-mm-dd')}} 时间过滤器<br>
            {{date|timeFormat('yyyy-mm')}} 时间过滤器yyyy-mm<br>
            {{date|timeFormat('hh:mm')}} 时间过滤器hh:mm<br>
            {{date|timeFormat('yyyy')}} 时间过滤器yyyy<br>
         {{date|timeFormat}} 时间过滤器yyyy<br>

    效果如下:

  • 相关阅读:
    Android ViewPager2 可垂直左右滑动使用【java】
    Android常用优秀开源框架
    Content-Type类型大全
    NodeJs FS 文件系统模块
    Nodejs 包与 npm第三方模块安装和 package.json 以及 cnpm
    Flutter Plugin开发简单示例
    Mysql创建数据库以及用户分配权限
    Android仿微信QQ等实现锁屏消息提醒
    android 桌面图标添加数字角标
    android7/8新特性 画中画、shortcut和分屏模式
  • 原文地址:https://www.cnblogs.com/yanwuming/p/10603058.html
Copyright © 2011-2022 走看看