- 博客(81)
- 收藏
- 关注
原创 约定式提交 commit 规范
├── public├── src└── .cz-config.js // 创建是一个可以在 Git hooks 中使用的 npm 包,它可以帮助你在特定的 Git 事件发生时执行命令,例如提交代码之前进行代码格式化、测试等操作."husky"是一个为了方便使用Git hooks的工具,它能够帮助你在项目中自动化地执行一些Git相关的操作。使用husky,你可以在Git的一些关键操作(例如提交、推送、合并等)前或后,执行一些脚本或命令,比如代码格式化、自动化测试、打包发布等。
2024-03-15 16:46:37 1288
原创 模块化(理解)
将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起 块的内部数据/实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信一个模块的组成数据--->内部的属性操作数据的行为--->内部的函数模块化编码时是按照模块一个一个编码的, 整个项目就是一个模块化的项目模块化的进化过程编码: 全局变量/函数问题: 污染全局命名空间, 容易引起命名冲突/数据不安全namespace模式 :编码: 将数据/行为封装到对象中。
2024-03-08 11:48:04 329
原创 Vite搭建Vue3项目(全套模板)
今天来带大家从0开始搭建一个vue3版本的后台管理系统。一个项目要有统一的规范,需要使用eslintstylelintprettier来对我们的代码质量做检测和修复,需要使用husky来做commit拦截,需要使用commitlint来统一提交规范,需要使用preinstall来统一包管理工具。下面我们就用这一套规范来初始化我们的项目,集成一个规范的模版。
2024-02-27 22:42:33 1466
原创 vite 打包图标icon ,content 内容乱码
解决:vite.config.ts / vite.config.js 文件添加配置。问题描述:本地开发环境icon 显示正常,打包后发布线上环境icon乱码。验证:本地再次打包,在dist/css 文件中查找发现,可以正确编译。找问题:观察发现是content 内容没有编译成功导致乱码。发布线上环境,大功告成,完美解决!
2023-12-13 10:38:33 950 5
原创 vue3 技术栈
vue3-draggable-resizable 拖拽插件。vue3-video-play 播放器。element-plus UI组件库。pinia 状态管理。
2023-03-15 14:14:46 83
原创 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 664
原创 函数节流情景应用
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 210
原创 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 1008
原创 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 331
原创 Git分布式的版本控制
1.版本控制 什么是版本控制?我们为什么要关心它呢?版本控制是一种记录一个或若干文 件内容变化,以便将来查阅特定版本修订情况的系统 为什么要使用版本控制?软件开发中采用版本控制系统是个明智的选择。 有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某 个时间点的状态。就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以 轻松恢复到原先的样子。但额外增加的工作量却微乎其微。 你可以比较文件的变化细节,查出最后是谁修改...
2021-09-15 16:00:29 181
原创 排列组合
计算组合数/*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 103
原创 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 4531 3
原创 分秒计时器(倒计时和顺计时)
倒计时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 452
原创 获取地址栏参数
//获取地址栏参数,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 284
原创 数字格式化保留两位小数(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 443
原创 js继承的6种方式
继承和闭包一直是前端开发的一个重点难点,特别是继承。平时开发过程中如果用的不算很多,就更难以去理解透彻了。要把继承理解透彻,还是需要花点时间的。【原型链继承】【借用构造函数继承】【组合继承(原型链+构造函数)】【原型式继承】【寄生式继承】【寄生组合式继承】想要继承,就必须要提供个父类(继承谁,提供继承的属性) // 父类 function Preson(name){ // 给构造函数添加参数 this.name = name; this.sun = functi
2020-10-21 16:35:47 128
转载 guid 生成
全局唯一标识分区表(GUID Partition Table,缩写:GPT)是指全局唯一标示磁盘分区表格式。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的以32bits来存储逻辑块地址和大小信息的主引导记录(MBR)分区表。 GUID的格式为:xxxxxxxx-xxxx-xxxx-xxxx-...
2020-03-27 10:14:13 1913
原创 file 获取本地文件路径(图片)
代码直接用就可以了,当然请注意浏览器版本//传入file文件getObjectURL(file) { let url = null; if (window.createObjcectURL != undefined) { url = window.createOjcectURL(file); ...
2020-03-17 15:59:01 3854 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 103
原创 全选,取消,单选拼接ID
本案例是在react项目实战中使用的,需求是把选中的列表项的id以“,”号拼接作为参数,修改状态。后台给的是数据列表,并没有可供是否选中的参数作为判断依据。这就需要前端多相关的数据处理。案例分析1,首先需要对后台数据保存本地,遍历添加一个checket=false属性,因为开始是未选中状态。 // 数据解析 set_awardData(arr){ ar...
2020-03-12 15:54:39 291
原创 倒计时
function TimeDown(params) { // console.log(endDateStr) //结束时间 let endDate = new Date(endDateStr.replace(/-/g,"/")); //当前时间 let nowDate = new Date(); /...
2020-03-12 15:07:43 134
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人