自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 约定式提交 commit 规范

├── public├── src└── .cz-config.js // 创建是一个可以在 Git hooks 中使用的 npm 包,它可以帮助你在特定的 Git 事件发生时执行命令,例如提交代码之前进行代码格式化、测试等操作."husky"是一个为了方便使用Git hooks的工具,它能够帮助你在项目中自动化地执行一些Git相关的操作。使用husky,你可以在Git的一些关键操作(例如提交、推送、合并等)前或后,执行一些脚本或命令,比如代码格式化、自动化测试、打包发布等。

2024-03-15 16:46:37 836

原创 vue3组件通信方式

vue3组件通信方式

2024-03-08 16:00:49 760

原创 模块化(理解)

将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起 块的内部数据/实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信一个模块的组成数据--->内部的属性操作数据的行为--->内部的函数模块化编码时是按照模块一个一个编码的, 整个项目就是一个模块化的项目模块化的进化过程编码: 全局变量/函数问题: 污染全局命名空间, 容易引起命名冲突/数据不安全namespace模式 :编码: 将数据/行为封装到对象中。

2024-03-08 11:48:04 310

原创 Vite搭建Vue3项目(全套模板)

今天来带大家从0开始搭建一个vue3版本的后台管理系统。一个项目要有统一的规范,需要使用eslintstylelintprettier来对我们的代码质量做检测和修复,需要使用husky来做commit拦截,需要使用commitlint来统一提交规范,需要使用preinstall来统一包管理工具。下面我们就用这一套规范来初始化我们的项目,集成一个规范的模版。

2024-02-27 22:42:33 961

原创 vite 打包图标icon ,content 内容乱码

解决:vite.config.ts / vite.config.js 文件添加配置。问题描述:本地开发环境icon 显示正常,打包后发布线上环境icon乱码。验证:本地再次打包,在dist/css 文件中查找发现,可以正确编译。找问题:观察发现是content 内容没有编译成功导致乱码。发布线上环境,大功告成,完美解决!

2023-12-13 10:38:33 444 5

原创 前端 通过流下载文件

【代码】前端 通过流下载文件。

2023-11-29 15:39:18 90

原创 数组对象求和

在一个数组对象中,求对象中某一个字段的总和。

2023-10-31 20:03:50 228

原创 Vue3 + element-plus 国际化

Vue3 + element-plus 国际化 i18n vue-i18n

2023-08-31 13:57:11 889

原创 axios请求、 Excel 表格导出

注:基于axios 直接请求后端接口,导出Excel 表格。

2023-06-27 15:58:15 1424

原创 css规范

css规范

2023-06-25 14:42:41 485

原创 vue3 技术栈

vue3-draggable-resizable 拖拽插件。vue3-video-play 播放器。element-plus UI组件库。pinia 状态管理。

2023-03-15 14:14:46 67

原创 html网站黑白模式

html网站黑白模式

2022-12-06 11:08:02 139

原创 全局组件批量注册

【代码】全局组件批量注册。

2022-09-14 18:59:37 162

原创 utils工具 常见函数

utils工具 常见函数

2022-08-18 11:46:10 287

原创 moment 时间获取的方法

moment 时间处理

2022-08-18 11:42:28 3165

原创 封装axiso请求防抖

封装axiso请求防抖

2022-06-27 16:46:54 344

原创 VUE 组件通信

vue组件通信

2022-04-12 18:55:49 152

原创 XSS攻击和CSRF攻击的定义及区别

CSRF1.CSRF的基本概念、缩写、全称CSRF(Cross-site request forgery):跨站请求伪造。PS:中文名一定要记住。英文全称,如果记不住也拉倒。2.CSRF的攻击原理用户是网站A的注册用户,且登录进去,于是网站A就给用户下发cookie。从上图可以看出,要完成一次CSRF攻击,受害者必须满足两个必要的条件:(1)登录受信任网站A,并在本地生成Cookie。(如果用户没有登录网站A,那么网站B在诱导的时候,请求网站A的api接口时,会提示你登.

2022-03-29 17:29:38 572

原创 H5唤起真机调试(VConsole)

VConsole,H5真机调试

2022-01-25 15:41:08 1040

原创 获取浏览器(名称、内核,版本号)

js获取浏览器

2022-01-25 15:34:10 1613

原创 函数节流情景应用

function throttle(fn, delay) { let first = true, timestamp, ctx = this; return function() { if (first) { timestamp = Date.now(); fn.apply(ctx, arguments); first = false; } else { let t = Date.now(); if ...

2022-01-14 16:04:02 195

原创 UUID生成

UUID 是指Universally Unique Identifier,翻译为中文是通用唯一识别码,UUID 的目的是让分布式系统中的所有元素都能有唯一的识别信息。如此一来,每个人都可以创建不与其它人冲突的 UUID,就不需考虑数据库创建时的名称重复问题。function uuid() { var s = []; var hexDigits = "0123456789abcdef"; for (var i = 0; i < 36; i++) { s[i] = hexDigi

2021-12-23 15:04:09 989

原创 vue项目-选项卡显示监听事件

当其选项卡的内容变得可见或被隐藏时,会在文档上触发visibilitychange(能见度更改)事件。https://developer.mozilla.org/zh-CN/docs/Web/API/Document/visibilitychange_eventdocument.addEventListener("visibilitychange", function() { if (document.visibilityState === 'visible') { backgro..

2021-12-09 10:54:58 305

原创 Git分布式的版本控制

1.版本控制 什么是版本控制?我们为什么要关心它呢?版本控制是一种记录一个或若干文 件内容变化,以便将来查阅特定版本修订情况的系统 为什么要使用版本控制?软件开发中采用版本控制系统是个明智的选择。 有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某 个时间点的状态。就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以 轻松恢复到原先的样子。但额外增加的工作量却微乎其微。 你可以比较文件的变化细节,查出最后是谁修改...

2021-09-15 16:00:29 157

原创 排列组合

计算组合数/*e:数组长度t:组合数组的长度*/nCr(e, t) { if (t > e) return 0; var n = 1; ~~(e / 2) + 1 > t && (t = e - t); for (var a = t + 1; a <= e; a++) n *= a; for (var r = 1; r <= e - t; r++) n /= r; return n

2021-08-31 11:46:17 92

原创 H5横屏竖屏切换(js)

function () { let width = document.documentElement.clientWidth, height = document.documentElement.clientHeight, wrapper = document.getElementById("app"), style = ""; if (width >= height) {.

2021-07-14 15:13:55 4257 2

原创 分秒计时器(倒计时和顺计时)

倒计时function countDown (date){ let dateArr =date.split(':') // console.log(dateArr) dateArr.forEach((element,index) =>{ let OOOI = dateArr[1],OOII=dateArr[0],time; if(index===1){ let set_interval = setInterval(() => { ..

2021-04-14 16:30:33 418

原创 获取地址栏参数

//获取地址栏参数,name:参数名称function getUrlParms(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return decodeURIComponent(r[2]); return null;}...

2021-03-31 14:50:21 249

原创 Promise浅理解

Promise浅理解

2021-03-20 17:12:36 224

原创 数字格式化保留两位小数(10000.00=>100 、00.00)

function fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2;s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";let l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];let t = "";for (let i = 0; i < l.length; i++) .

2021-03-20 09:04:24 387

原创 js继承的6种方式

继承和闭包一直是前端开发的一个重点难点,特别是继承。平时开发过程中如果用的不算很多,就更难以去理解透彻了。要把继承理解透彻,还是需要花点时间的。【原型链继承】【借用构造函数继承】【组合继承(原型链+构造函数)】【原型式继承】【寄生式继承】【寄生组合式继承】想要继承,就必须要提供个父类(继承谁,提供继承的属性) // 父类 function Preson(name){ // 给构造函数添加参数 this.name = name; this.sun = functi

2020-10-21 16:35:47 113

转载 guid 生成

全局唯一标识分区表(GUID Partition Table,缩写:GPT)是指全局唯一标示磁盘分区表格式。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的以32bits来存储逻辑块地址和大小信息的主引导记录(MBR)分区表。 GUID的格式为:xxxxxxxx-xxxx-xxxx-xxxx-...

2020-03-27 10:14:13 1786

原创 file 获取本地文件路径(图片)

代码直接用就可以了,当然请注意浏览器版本//传入file文件getObjectURL(file) { let url = null; if (window.createObjcectURL != undefined) { url = window.createOjcectURL(file); ...

2020-03-17 15:59:01 3811 6

原创 ajax请求

原声实例var result = null;//在不知道值是什么类型的时候 可以通过null去赋值var rep = new XMLHttpRequest?new XMLHttpRequest():new ActiveXObject();rep.open("GET","http://route.showapi.com/255-1?showapi_appid=40091&showapi

2020-03-13 11:58:28 95

原创 全选,取消,单选拼接ID

本案例是在react项目实战中使用的,需求是把选中的列表项的id以“,”号拼接作为参数,修改状态。后台给的是数据列表,并没有可供是否选中的参数作为判断依据。这就需要前端多相关的数据处理。案例分析1,首先需要对后台数据保存本地,遍历添加一个checket=false属性,因为开始是未选中状态。 // 数据解析 set_awardData(arr){ ar...

2020-03-12 15:54:39 267

原创 倒计时

function TimeDown(params) { // console.log(endDateStr) //结束时间 let endDate = new Date(endDateStr.replace(/-/g,"/")); //当前时间 let nowDate = new Date(); /...

2020-03-12 15:07:43 122

原创 数组{对象}去重 [ {},{},{}]

先看实例的原数组;//原数组对象[ {name: "NBA美国职业篮球联赛", matchScreen: true}, {name: "NBA美国职业篮球联赛", matchScreen: true}, {name: "美国职业大联盟", matchScreen: true}, {name: "阿根廷超级联赛", matchScreen: true}, ...

2020-03-02 10:32:38 361

原创 深拷贝(多层次数组对象的拷贝)

在开发过程中很多时候需要对多层级数组或者对象中的某一些数据做特殊处理,但是简单的重新赋值会改变原来的对象,所以处理起来就很麻烦。简单的浅拷贝就满足不了我们的需求了。当然ES6提供了深拷贝的方法JSON.stringify() 和JSON.parse(),基于实际的开发经验,我也有自己的深拷贝的方法:// 深拷贝function deepCopy(obj) { var result...

2020-01-15 10:56:59 791

原创 滚动条样式

.scrollBarStyle { &::-webkit-scrollbar { /*滚动条整体样式*/ width: 10px; /*高宽分别对应横竖滚动条的尺寸*/ height: 4px; } &::-webkit-scrollbar-thumb { /*滚动条里面小方...

2019-12-20 16:50:49 107

原创 webpack(process.env.NODE_ENV)build打包自动区分环境

webpack每次打包都要切换地址(很烦)前端项目在每次打包的时候都要求切换后台地址,如果有哪次忘记了切换地址就打包的,发到线上就报错了,又要修改地址后再打包。虽然这不是什么难事,就花费时间而已,但是作为一名合格的码农,就是要遵循偷懒原则,所以我们要做一个判断处理。process.env.NODE_ENV对,就是它process.env.NODE_ENV,如果你不认识它,没关系,小生给...

2019-11-28 16:09:33 3291

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除