当前位置: 首页 > wzjs >正文

建网站卖酒店机票搜索量暴涨

建网站卖,酒店机票搜索量暴涨,做箱包哪个网站好,有效的引流推广方法代码复用策略的需求萌发 随着开发的项目越来越多,在新项目的coding中,几乎都会出现的:这个功能我是写过的,而且封装了个函数or方法... 但是,是哪个项目呢,放哪了?😶 之后开始各种—…

代码复用策略的需求萌发

随着开发的项目越来越多,在新项目的coding中,几乎都会出现的:这个功能我是写过的,而且封装了个函数or方法... 但是,是哪个项目呢,放哪了?😶

之后开始各种——找~

几乎每个新项目都这么折腾下来,至少我需要给自己写一个“复用function的工具手册”,帮我节省时间、规避错误,避免重复劳动。

日期格式化

当然可以很方便的引用一个monent或dayjs,然后format解决~

但是,组件库的体量通常比较大,如果只需要一个格式化的功能,可以自定义一个函数。

but自己写日期格式化代码不仅繁琐,还容易出错;而且随着需求的格式不同,不通用的情况也出现了,类似这样的代码叠加~

哎……

因此,就base了一个通用函数,只需要将日期字符串和目标语言环境传入函数,就能得到格式化的日期,就不用反复搜索各种复杂的方法了。

function formatDate(dateStr, locale = 'en-US') {return new Date(dateStr).toLocaleDateString(locale, {year: 'numeric',month: 'short',day: 'numeric',});
}

JSON 解析

在解析 localStorage 或 API 返回数据时,经常会遇到格式错误的问题,导致程序崩溃。so需要一个安全过滤json的解析函数。

function safeJsonParse(str, fallback = {}) {try {return JSON.parse(str);} catch {return fallback;}
}const strs = safeJsonParse(localStorage.getItem('jsonString'));

防抖 

应对重复点击或输入变化等情况导致的事件被过度触发的问题。

也有一个组件库——lodash,我用的时候在不同的框架下,有时会报错;而且同样存在整体引入的体量问题。so自己写一个~

function debounce(func, delay = 300) {let timeout;return (...args) => {clearTimeout(timeout);timeout = setTimeout(() => func(...args), delay);};
}const handleChange = debounce((val) => searchUsers(val), 500);

等待用户停止操作 500 毫秒后再发起请求,有效减少了请求次数,提升了系统的稳定性和性能。

节流

用于测试和节流的延时处理函数:

function sleep(ms) {return new Promise((resolve) => setTimeout(resolve, ms));
}await sleep(1000);


判空函数

api返回的数据中莫名出现字符串化的null和undefined及空字符串等,于是一个不断追加条件的万能判空函数出现。

function isEmptyCheck(val) {try {var result = false;if (!val || val == '' || val == ' '|| val == 'null' || val=='undefined' || val.length==0 || val=={}) {result = true}if(val==0){result = false;}return result;} catch (e) {return true;}
}

复制到剪贴板

async function copyToClipboard(text) {try {await navigator.clipboard.writeText(text);return true;} catch (err) {console.error('操作失败:', err);return false;}
}

动态组合成元素类名

根据条件来组合类名,显示不同的样式。写一个函数取代在元素上用各种复杂的判断,以一种更加优雅、简洁的方式处理条件类名,让代码更具可读性和可维护性。

function classNames(...args) {return args.filter(Boolean).join(' ');
}
//引用
<el-button class={classNames('btn', isActive && 'btn-primary')} />

数组去重

function uniqueArray(arr) {return [...new Set(arr)];
}const arr = uniqueArray([...userTags, ...defaultTags]);

blob文件下载and从header提取文件名

const handleExportRouter = (payload) =>{if(payload.bodyBlob && payload.type && payload.filename) {let link = document.createElement("a");let blob = new Blob([payload.bodyBlob], { type: payload.type });link.href = URL.createObjectURL(blob);link.download = payload.filename;link.click();link.href = "#";URL.revokeObjectURL(link.href);} else {let link = document.createElement("a");const fileNameRes = payload.headers["content-disposition"].split('filename=\"');const fileName = decodeURI(fileNameRes[1].substring(0, fileNameRes[1].length - 1))const typeRes = fileName.split('.')const fileType = fileTypeArr[`.${typeRes[typeRes.length - 1]}`]let blob = new Blob([payload.data], { type: fileType });link.href = URL.createObjectURL(blob);link.download = fileName;link.click();link.href = "#";URL.revokeObjectURL(link.href);}};

身份信息提取

const  IdHandler =(UUserCard, num) =>{if(num==1){//获取出生日期let birth=UUserCard.substring(6, 10) + "-" + UUserCard.substring(10, 12) + "-" + UUserCard.substring(12, 14);return birth;}if(num==2){//获取性别if (parseInt(UUserCard.substr(16, 1)) % 2 == 1) {return "男";} else {return "女";}}if(num==3){//获取年龄let myDate = new Date();let month = myDate.getMonth() + 1;let day = myDate.getDate();let age = myDate.getFullYear() - UUserCard.substring(6, 10) - 1;if (UUserCard.substring(10, 12) < month || UUserCard.substring(10, 12) == month && UUserCard.substring(12, 14) <= day) {age++;}return age;}
};

生成唯一标识

const guid = () => {//全局唯一标识符return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {let r = (Math.random() * 16) | 0,v = c === "x" ? r : (r & 0x3) | 0x8;return v.toString(16);});
};

base64 转 blob

function base64ToBlob(base64Data) {let arr = base64Data.split(","),mime = arr[0].match(/:(.*?);/)[1],bstr = atob(arr[1]),n = bstr.length,u8arr = new Uint8Array(n);while (n--) {u8arr[n] = bstr.charCodeAt(n);}return new Blob([u8arr], {type: `${mime},charset=UTF-8`});};

http://www.dtcms.com/wzjs/430227.html

相关文章:

  • 网站要设置哪些栏目媒体推广
  • 关于建设公司网站的建议seo站点是什么意思
  • 免费看黄金的软件东莞网站建设优化技术
  • 短视频关键词seo优化seo站内优化
  • 12306网站开发投资百度seo怎么操作
  • 网站建设详细步骤营销技巧和营销方法
  • 想学学做网站软件开发外包平台
  • 商水县住房城乡建设网站中国万网域名注册免费
  • windows 做网站服务器吗站长工具 seo查询
  • 网站建设及发展站长工具seo
  • wordpress不支持pdo上海做seo的公司
  • 做网站与做网页的区别网站如何快速收录
  • 微信小程序开发教程pdf游戏优化大师官网
  • 天津做网站找哪家公司百度搜索引擎投放
  • 广州做网站基本流程百度账号客服24小时人工电话
  • 微网站的搭建流程女儿考试没圈关键词
  • 渝网互联重庆网站制作网站建设的意义和目的
  • 个人二级网站怎么做学it需要什么学历基础
  • 什么网站做微信公众账号域名信息查询网站
  • eclipse做网站百度关键词优化软件网站
  • 劳务公司网站建设方案315影视行业
  • 网站建设摊销谷歌seo排名优化服务
  • 做婚介打么网站好谷歌独立站
  • 手机 登录asp网站成都网站seo外包
  • 免费网站设计 优帮云seo优化视频教程
  • 广东软文网站推广文案萧山市seo关键词排名
  • 二级分销利润分配模式搜索引擎优化规则
  • 沈阳网络建网站个人网络营销工具有哪些?
  • arukas搭建wordpress网站在线优化工具
  • 深圳网站建设服务哪家有网站软件下载