vue封装全局过滤器(及常用方法封装)

4 篇文章 0 订阅
文章介绍了如何在Vue项目中创建并使用全局过滤器,包括时间格式化、保留小数、时间单位转换等常见功能。通过在filters.js中定义函数,然后在main.js中引入并注册为Vue过滤器,最后在模板中使用管道符进行数据处理。
摘要由CSDN通过智能技术生成

1.创建filters.js文件,定义过滤函数。

如:时间格式转化函数

// 转化时间格式 年月日  时分秒
function filterTime(time) {
    var date = new Date(time);
    var y = date.getFullYear();
    var m = date.getMonth() + 1;
    m = m < 10 ? "0" + m : m;
    var d = date.getDate();
    d = d < 10 ? "0" + d : d;
    var h = date.getHours();
    h = h < 10 ? "0" + h : h;
    var minute = date.getMinutes();
    minute = minute < 10 ? "0" + minute : minute;
    var s = date.getSeconds();
    s = s < 10 ? "0" + s : s;
    return y + "年" + m + "月" + d + "日" + " " + h + ":" + minute;
}

2.在main.js中引入使用

//全局过滤器
import * as filters from '@/js/filters'
Object.keys(filters).forEach(key => {
    Vue.filter(key, filters[key])
})

3.在vue页面使用管道法进行过滤

如:

<span>
  开始日期:{{ item.f_StartTime | filterTime }}至
  结束日期:{{ item.f_EndTime | filterTime }}
</span>

常用方法封装:

注:(后续用到其他方法会持续更新,如有用到其他常用的方法欢迎评论留言)

1.保留两位小数

2.保留两位小数并转化时间单位

3.转化时间格式年-月-日-时-分-秒

4.转化时间格式年-月-日

5.文字/字符首字母

6.根据时间段获取相差XX天xx小时xx分钟

// 保留两位小数
function Tofixed(value) {
    // 截取当前数据到小数点后两位
    let realVal = parseFloat(value).toFixed(2)
    return realVal
}
// 保留两位小数并转化时间单位
function Tofixed_time_3600(num) {
    return num == 0 ? num : (num / 3600).toFixed(2);
}
// 转化时间格式 年月日  时分秒
function filterTime(time) {
    var date = new Date(time);
    var y = date.getFullYear();
    var m = date.getMonth() + 1;
    m = m < 10 ? "0" + m : m;
    var d = date.getDate();
    d = d < 10 ? "0" + d : d;
    var h = date.getHours();
    h = h < 10 ? "0" + h : h;
    var minute = date.getMinutes();
    minute = minute < 10 ? "0" + minute : minute;
    var s = date.getSeconds();
    s = s < 10 ? "0" + s : s;
    return y + "年" + m + "月" + d + "日" + " " + h + ":" + minute;
}
// 转化时间格式 年月日
function filterTime2(time) {
    var date = new Date(time);
    var y = date.getFullYear();
    var m = date.getMonth() + 1;
    m = m < 10 ? "0" + m : m;
    var d = date.getDate();
    d = d < 10 ? "0" + d : d;
    var h = date.getHours();
    h = h < 10 ? "0" + h : h;
    var minute = date.getMinutes();
    minute = minute < 10 ? "0" + minute : minute;
    var s = date.getSeconds();
    s = s < 10 ? "0" + s : s;
    return y + "年" + m + "月" + d + "日";
}
// 文字/字符首字母
function Splice(str) {
    if (!str) return "";
    str = str.toString();
    return str.substr(0, 1);
}
// 根据时间段获取相差XX天xx小时xx分钟
function formatDuring(millisecond) {
    var days = parseInt(millisecond / (1000 * 60 * 60 * 24));
    var hours = parseInt(
        (millisecond % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)
    );
    var minutes = parseInt((millisecond % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = (millisecond % (1000 * 60)) / 1000;
    return days + " 天 " + hours + " 小时 " + minutes + " 分钟 ";
}
export {
    Tofixed,
    Tofixed_time_3600,
    filterTime,
    filterTime2,
    formatDuring,
    Splice
}

参考文章:vue封装全局过滤器_zhuzhucaicai的博客-CSDN博客

有用的话请点赞,关注加收藏哦(。・ω・。)ノ♡

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[2\]:在封装axios时,可以按照以下步骤进行操作: 1. 首先,需要配置全局代理,以便在开发环境能够正确地发送请求到后端接口。 2. 接着,全局封装axios和request.js,可以在这里设置请求的拦截器、响应的拦截器等。 3. 过滤axios请求方式,控制路径和参数的格式,可以在http.js文件进行相关配置。 4. 正式封装api.js,这里可以将所有的请求地址封装方法,方便统一管理。 5. 最后,在页面调用封装好的api.js方法来发送请求。 引用\[3\]给出了两种封装axios的方法: 方法1是将所有请求的地址封装成一个方法,可以在api.js文件引入request.js文件,并使用request方法来发送请求。 方法2是直接将axios挂载到全局,可以在main.js文件引入request.js,并将其赋值给Vue的原型属性$http,然后在页面使用this.$http来发送请求。 所以,封装axios的用法可以根据具体需求选择以上两种方法之一来实现。 #### 引用[.reference_title] - *1* *2* [vueaxios的二次封装——vue 封装axios详细步骤](https://blog.csdn.net/Vivien_CC/article/details/127507545)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vue 封装 axios 请求](https://blog.csdn.net/m0_54409638/article/details/125079492)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值