vue前端常用的工具类总结

 更新时间:2024年01月04日 15:08:25   作者:SuperYiY  
这篇文章主要为大家详细介绍了6个vue前端常用的工具类,可直接复用,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

utils文件夹中的util.js编写公共工具类

const initUtil = {}

Byte 转 KB/MB/GB

initUtil.getfilesize = (size = 0,) => {
    if (!size) return '0.00GB';
    const num = 1000.00; //byte
    if (size < num)
        return size + "B";
    if (size < Math.pow(num, 2))
        return (size / num).toFixed(2) + "KB"; //kb
    if (size < Math.pow(num, 3))
        return (size / Math.pow(num, 2)).toFixed(2) + "MB"; //M
    if (size < Math.pow(num, 4))
        return (size / Math.pow(num, 3)).toFixed(2) + "GB"; //G
}

知识点:

1、Math.pow(base, exponent):Math.pow(2, 3),2 的 3 次方是 8。

2、toFixed(2) 格式化数字,返回字符串类型,当前保留数字后两位

获取url指定参数

使用 URLSearchParams 对象:

initUtil.getUrlParam = (name) => {
    // 假设 URL 为:https://example.com/page?name=John&age=25
    // 创建 URLSearchParams 对象,将 URL 查询参数解析到该对象中
    const urlParams = new URLSearchParams(window.location.search);
    // 获取指定参数的值
    return urlParams.get(name)
}

使用正则表达式:

initUtil.getUrlParam = (name,url) => {
    name = name.replace(/[\[\]]/g, "\\$&");
    const regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url || window.location.href);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

getUrlParam('name')

知识点

1、正则表达式(Regular Expression): 正则表达式用于在 URL 中匹配指定的参数名,并捕获对应的参数值。 name = name.replace(/[[]]/g, “\$&”); 这一行用于将参数名中的方括号进行转义,确保正则表达式匹配正确。

2、RegExp 对象: const regex = new RegExp(“[?&]” + name + “(=([^&#]*)|&|#|$)”); 创建了一个正则表达式对象,该正则表达式匹配 URL 查询字符串中指定参数名的模式。

3、exec 方法: regex.exec(url || window.location.href); 使用 exec 方法在URL中执行正则表达式,返回匹配的结果数组。结果数组中,results[0] 包含整个匹配项,results[2] 包含参数值

日期格式化

initUtil.dateFormat = (date, format = 'YYYY-MM-DD HH:mm:ss') => {
    const config = {
        YYYY: date.getFullYear(),
        MM: date.getMonth() + 1,//getMonth() 方法根据本地时间返回指定日期的月份(从 0 到 11)
        DD: date.getDate(),
        HH: date.getHours(),
        mm: date.getMinutes(),
        ss: date.getSeconds(),
    }
    for (const key in config) {
        format = format.replace(key, config[key])
    }
    return format
}

知识点:

replace方法的基本语法是:

newString = originalString.replace(searchValue, replaceValue);

originalString 是原始字符串。

searchValue 是要被替换的子字符串或正则表达式。

replaceValue 是替换的内容。

如果 searchValue 是一个字符串,只会替换第一次出现的匹配项。

如果 searchValue 是一个正则表达式,会替换所有匹配项。

返回的是一个新的字符串,原始字符串并没有被改变

以下是一些示例:

let originalString = "Hello, world! Hello, universe!";
let newString = originalString.replace("Hello", "Hi");
console.log(newString);
// 输出: "Hi, world! Hello, universe!"

let regex = /Hello/g;  // 使用正则表达式,全局匹配
newString = originalString.replace(regex, "Hi");
console.log(newString);
// 输出: "Hi, world! Hi, universe!"

返回时间段

initUtil.getTimeState = (time, lang) => {
    let text = ``;
    if (time) {
        // 获取当前小时
        let hours = Number(time.split(':')[0]);
        // 设置默认文字
        
        // 判断当前时间段
        if (lang !== 'en') {
            if (hours >= 0 && hours <= 11) {
                text = `上午`;
            } else {
                text = `下午`;
            }
        } else {
            if (hours >= 0 && hours <= 11) {
                text = `AM`;
            } else {
                text = `PM`;
            }
        }
    }
    // 返回当前时间段对应的状态
    return text;
}

防抖

initUtil.debounce = (fn, delay = 500) => {
    let timer
    return function () {
        clearTimeout(timer)
        timer = setTimeout(() => {
            fn.apply(this, arguments)
        }, delay)
    }
}

节流

initUtil.throttle = (fn, delay = 500) => {
    let timer
    return function () {
        if (!timer) {
            clearTimeout(timer)
            timer = setTimeout(() => {
                fn.apply(this, arguments)
                timer = null
            }, delay)
        }
    }
}

到此这篇关于vue前端常用的工具类总结的文章就介绍到这了,更多相关vue工具类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3上传excel并在线预览的实现

    vue3上传excel并在线预览的实现

    文章介绍了通过将Excel文档的数据处理成HTML表格字符串,实现在线预览的方法,使用了XLSX库中的`sheet_to_html`和`sheet_to_json`函数将Excel工作表转换为HTML表格和JSON格式
    2025-12-12
  • 简单理解vue中Props属性

    简单理解vue中Props属性

    这篇文章主要帮助大家简单的理解vue中Props属性,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Vue+Element实现封装抽屉弹框

    Vue+Element实现封装抽屉弹框

    这篇文章主要为大家详细介绍了如何利用Vue和Element实现简单的抽屉弹框效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-06-06
  • Vue组件基础操作介绍

    Vue组件基础操作介绍

    这篇文章主要介绍了Vue组件基础操作,组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互进行直接的引用
    2023-01-01
  • Vue3中如何使用SCSS编写样式

    Vue3中如何使用SCSS编写样式

    在Vue模板中启用这些表现力库插件的最简单方法是在初始化项目时安装它们,或使用 npm install(或 yarn add)安装包,这篇文章主要介绍了Vue3中如何使用SCSS编写样式,需要的朋友可以参考下
    2023-12-12
  • 深入理解vue.js中$watch的oldvalue与newValue

    深入理解vue.js中$watch的oldvalue与newValue

    这篇文章主要给大家介绍了关于vue.js中$watch的oldvalue与newValue的相关资料,文中通过示例代码介绍的非常详细,并且介绍了关于watch的其他测试,对大家学习或者使用vue.js具有一定的参考学习价值,需要的朋友们下面跟着小编来一起看看吧。
    2017-08-08
  • Vue中的Object.defineProperty全面理解

    Vue中的Object.defineProperty全面理解

    这篇文章主要介绍了Vue中的Object.defineProperty全面理解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue3中watch监听对象的属性值(监听源必须是一个getter函数)

    Vue3中watch监听对象的属性值(监听源必须是一个getter函数)

    这篇文章主要介绍了Vue3中watch监听对象的属性值,监听源必须是一个getter函数,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • 如何在Vue中实现Svelte的Defer Transition

    如何在Vue中实现Svelte的Defer Transition

    这篇文章主要介绍了如何在Vue中实现Svelte的Defer Transition,帮助大家更好的理解和学习使用vue,感兴趣的朋友可以了解下
    2021-04-04
  • 命令行CLI一键生成各种烦人的lint配置实例

    命令行CLI一键生成各种烦人的lint配置实例

    这篇文章主要为大家介绍了命令行CLI一键生成各种烦人的lint配置实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02

最新评论