自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 输入url后,触发的前端相关事件

URL解析 -> DNS查询 -> DNS查询 -> 建立TCP连接 -> 发起HTTP请求 -> 服务器响应 -> 接收响应 -> 渲染页面 -> 下载资源 -> 并行下载资源 -> 执行js -> 渲染页面元素 -> 完成加载。:如果响应是 HTML 页面,浏览器会解析 HTML、构建 DOM 树、构建 CSSOM 树,然后将它们合并成渲染树,最终将页面内容显示在浏览器窗口中。:浏览器会根据 DOM 树和 CSSOM 树,计算每个元素的位置和样式,然后将页面元素绘制在浏览器窗口中。

2024-03-14 16:53:31 395

原创 前端页面加载性能优化

对于需要 SEO 优化和首屏加载性能要求较高的应用,可以考虑使用 Vue 的服务端渲染 (SSR) 来实现,以在服务端生成完整的 HTML,并提高首屏加载速度。:如果你使用 Vue Router,可以将路由进行懒加载,只在需要时加载相应的组件,而不是一次性加载所有路由组件,以减少初始加载时间。可以使用图片懒加载技术,延迟加载屏幕外的图片,以提高页面加载速度。:将代码拆分成更小的块,并按需加载。:当列表数据非常庞大时,可以考虑使用虚拟列表技术,只渲染可见区域内的列表项,以提高页面性能和用户体验。

2024-03-14 16:37:42 587

原创 前端协商缓存和强缓存

在Web开发中,缓存是一种重要的性能优化技术,有两种主要的缓存策略:协商缓存和强缓存。

2024-03-14 16:19:40 461

原创 前端页面渲染机制

DOM 树是一个对象表示网页的结构,其中每个 HTML 元素都是树中的一个节点,它们之间的关系由它们在 HTML 中的嵌套关系决定。: 类似于 DOM 树,浏览器还会构建 CSS Object Model(CSSOM)树,表示 CSS 的层次结构和规则。浏览器会监听用户的事件,如鼠标点击、键盘输入等,并触发相应的事件处理程序(通常是 JavaScript 函数),以响应用户的操作。这个过程称为 CSS 解析和样式计算。: 浏览器根据渲染树中的每个元素的几何属性(如大小和位置)来确定它们在屏幕上的确切位置。

2024-03-14 15:47:41 489

原创 如何提高webpack构建速度以及优化前端性能

可以利⽤webpack的 UglifyJsPlugin 和 ParallelUglifyPlugin 来压缩JS⽂件, 利⽤ cssnano (css-loader?: 将代码按路由维度或者组件分块(chunk),这样做到按需加载,同时可以充分利⽤浏览器缓存提取公共第三⽅库: SplitChunksPlugin 插件来进⾏公共模块抽取, 利⽤浏览器缓存可以⻓期缓存这些⽆需频繁变动的公共代码。5.使⽤ webpack-uglify-parallel 来提升 uglifyPlugin 的压缩速。

2024-02-04 15:28:07 595

原创 如何对项目中的图片进行优化以及常见图片格式

对于能够显示 WebP 格式的浏览器尽量使用 WebP 格式。小图使用 PNG,其实对于大部分图标这类图片,完全可以使用 SVG 代。一般图片都用 CDN 加载,可以计算出适配屏幕的宽度,然。很多时候会使用到很多修饰类图片,其实这类修饰图片。2.对于移动端来说,屏幕宽度就那么点,完全没有必要去加载原图浪。格式具有更好的图像数据压缩算法,能带来更小的图片体积,而且拥。有肉眼识别无差异的图像质量,缺点就是兼容性并不好。3.小图使用 base64 格式。完全可以用 CSS 去代替。后去请求相应裁剪好的图片。

2024-02-04 15:06:39 152

原创 图片懒加载

图片的加载是由src引起的,当对src赋值时,浏览器就会请求图片资源。根据这个原理,我们使用HTML5的data-xxx属性来储存图片的路径,在需要加载图片的时候,将data-xxx中图片的路径赋值给src,这样就实现了图片的按需加载,即懒加载。懒加载的实现重点在于确定用户需要加载哪张图片,在浏览器中,可视区域内的资源就是用户需要的资源。所以当图片出现在可视区域时,获取图片的真实地址并赋值给图片即可。注意:data-xxx中的xxx可以自定义,这里我们使用data-src来定义。

2024-02-02 16:54:42 194

原创 树形结构扁平化,数组结构树形化(极致优雅版)

3.我的项目里面,需要转换的映射是 traderNo->id,traderName->label,parentTraderNo:父节点的no,这几个字段根据自己实际项目和转换需求来确定。2.parentId:父节点的id值,可能为null/'0'等,根据实际项目情况看。2.其他字段转换和上文一致。一.数组结构转树形结构。

2024-01-31 13:54:45 190

原创 springboot初始项目每一层的含义

控制器层,包含处理 HTTP 请求和响应的控制器类。: 存放配置类,如 Spring 配置、数据库配置等。: 存放数据访问层的接口或类,用于与数据库进行交互。三.有的项目下创建出来,存在更多不同的层级。: 存放实体类,代表数据库表的结构。: 服务层,包含业务逻辑的实现。一.创建的时候主要勾选了以下。

2024-01-23 09:48:57 408 1

原创 前端及其优雅的去重方式

NaN(Not a Number)是 JavaScript 中一个特殊的值,而 NaN 与自身不相等。对象是引用类型,即使两个对象具有相同的结构和值,它们也是不相等的。但是,该函数会将两个不同的对象视为相等,因为它仅仅检查了对象的引用而不是内容。在 JavaScript 中,null 和 undefined 被视为相等的,但是该函数会将它们视为不同的值。相较于new Set()方法,能区分出{},{}重复的筛选,new Set需要对对象进行重复的判断。核心思路:将一个值的的类型+值作为key。

2024-01-03 18:54:28 480

原创 前端下载File类型文件

【代码】前端下载File类型文件。

2023-11-27 10:55:15 420

原创 前端将blob转换为可下载的url及下载

【代码】前端将blob转换为可下载的url。

2023-11-27 10:50:17 1758

原创 前端通过canvas压缩图片

【代码】前端通过canvas压缩图片。

2023-11-27 10:46:00 415

原创 前端定时任务

【代码】前端定时任务。

2023-10-30 10:57:59 118

原创 html转pdf、Img

【代码】html转pdf、Img。

2023-10-30 08:52:15 133

原创 前端.gitignore参考

Logslogs*.log.DS_Storedistdist-ssrcoverage*.local.vscode/*!.idea*.suo*.ntvs**.njsproj*.sln*.sw?

2023-10-27 17:22:28 54

原创 eslint+stylelint+prettier全流程配置

stylelintrc.cjs,具体文件内容如下。执行一次npx prettier . --write,格式化一次code,如果是使用的Vscode编辑器,格式化代码的时候选取prettier相关的格式方法。三.vite.config.ts引入。二.创建以下5个文件放在项目顶层。

2023-10-27 17:11:51 1318

原创 uni-app封装省市区下拉组件(后台获取数据)

前端将地址数据缓存在了pinia中。前端主要使用picker进行勾选。

2023-08-21 14:08:00 1486

原创 el-upload接口一次上传多张图片

2.handleUploadHttp自定义上传方法。1. beforeUpload做文件校验。

2023-07-18 10:01:19 505

原创 html转pdf

【代码】html转pdf。

2023-07-12 09:36:11 255

原创 vue2封装单张图片上传(常用于身份证正反面)

提供2个方法给外部,onSuccess成功后的处理,onRemove移除照片后的处理,需要其他,就自己抛出事件,但是封装这个组件的本心是简化上传动作,因此尽量少抛出事件。另外如果修改了宽度的话,在外部组件需要用scss重写一下样式。

2023-06-29 15:58:47 1076

原创 uni-app一些开发技巧

我的项目pc版本cookie是后端去存放在请求里面的,实测这样的方式,在h5页面去实现的时候,无法读取,还是需要前端去存一次,并传递。uni.request不支持文件上传,即file类型的上传,需要用uni.uploadFile。一.如何在不同平台运行不同的代码。二.uni-app文件上传的坑。

2023-05-22 09:04:00 405

原创 vue3+ts父子组件通信

通过emits方法定义函数来传递。一.父组件向子组件传参。二.子组件向父组件传参。

2023-05-12 10:11:13 178

原创 接上文-区数据

【代码】接上文-区数据。

2023-05-12 09:21:15 458

原创 接上文-省市数据

【代码】接上文-省市数据。

2023-05-12 09:19:36 79

原创 uni-app省市区查询组件的封装

change里面会有点击确定的回调,回调里面包含了参数。另外几个文件放在旁边的博客文章里面,太长了.....addreeText是显示在那一行的地址信息。四.pickerAddress.vue。

2023-05-11 17:29:41 159

原创 uni-app封装手机端table组件

column:显示的字段 eg:[{ prop: 'businessType',label: '业务类型'}]IMG_BASE_URL是我的项目图片的基础地址,主要是放置下拉的那个箭头,根据自己项目去调整。tableData:table数据 eg:[{businessType:'1111'}]outerNum:table的header显示几个,默认3个。funcBtn:操作按钮的名称数组,eg:['审核']loadMoreData:点击加载更多的处理事件。一.最终实现效果如下。

2023-05-11 17:15:07 880

原创 uni-app根据环境封装动态url

env:当前的运行环境,小程序会有development,test,production三个环境,根据不同的环境配置不同的使用地址。whichSupport是在进入项目时已经判断出来了当前是在哪个硬件环境下(通过//#ifdef APP去实现)小程序需要拼接全量的地址,而h5只需要给出后缀,通过ngix进行转发即可,这个操作放在全局的axios请求里面。baseUrl就是请求的url。

2023-05-11 16:36:48 1082

原创 关于vue3的pinia的使用

这样才能相应到,直接在页面写{{globalStore.payLoading}}是无法响应的。在/src/pinia下创建需要创建的store,比如创建一个user.ts。/src/pinia下创建一个主文件index.ts。1.如果想在页面上响应pinia的变化,需要。在mian.ts中挂载主文件。

2023-05-11 16:20:12 105

原创 华为ocr接口的前端封装

judgeFile:对文件进行合规性校验函数。idcardRecognize:后端返回接口。showToast:全局提示函数。二.judgeFile代码如下。

2023-05-11 15:56:05 106

原创 前端实现将金额,隔开

【代码】前端实现将金额,隔开。

2023-05-11 11:15:30 46

原创 uni-app提示信息的封装

glPinia.canToast是放pinia的全局参数,用来控制在当前是否允许弹窗,比如https全局请求的时候,有可能出现一次性出现多个错误提示的情况,通过这个变量来劫持。背景:uni-app运行在微信小程序时,超过7个字符会进行截取,因此需要使用showModal进行提示。

2023-05-11 11:12:08 373

原创 vue3编码规范

**注** 页面与组件的命名,统一采用 **page-block/function** 的方式 如 **envelope-header envelope-tab-bar**- **store** \*全局 store 项目采用 **pinia** 代替 vuex\* **[pinia](https://pinia.web3doc.top/)**- **Atomic CSS** 原子化 css。- **接口函数** 统一以 **api** 结尾 如 ***getUserInfoApi****

2023-05-11 10:54:26 787

原创 微信点金计划(服务商角度)

引入的头部文件,除了./jsapiResult/cssFiles/jsapiResult.css这个文件外,其他直接去网上扒拉资源就好,我这里都是自己下载下来放置为静态文件调用,这个样式文件如下。②“商家小票”调试工具里面的,“从业机构商户号”是银行/服务商的商户号,底部的2个单号,可以在微信支付的“账单”里面点进去查询到。三.因为微信的前端回调没有跳转小程序的方法,所以设置了一个空白页面,先跳转到空白页面,空白页面再跳转到小程序,空白页面代码如下。这个文件,我目前是放置在index.html里面。

2023-02-17 15:43:45 836 3

原创 pc/移动端前端思路

pc/移动端前端思路

2023-01-10 16:05:10 138

原创 vue3+ts+vite踩坑小记

vue3+ts+vite踩坑小记

2023-01-10 15:41:50 261

原创 前端好看的几组颜色值

一.echarts柱状图,折线图,饼状图几组颜色值。二.几组好看的渐变色。

2022-11-04 17:19:47 743

原创 vue下echarts的地图配置(3d悬浮效果)

2.series数据格式为:[{name:'四川省',amount:'123456'},{name:'海南省,amount:'456'}]1. zoomSize设置值为1.4。toolTip配置js文件如下。图片上面的水印是公司软件自带的。五.其他配置数据说明。

2022-11-04 15:33:07 4994 1

原创 前端微信支付代码(公众号支付)

其他商户跳转到我们支付页面,传入参数openId,fromTradeType,订单号,流水号,借由我们页面进行微信支付。具体在小程序后台如何配置,见微信官方文档。满足1.是在微信内核进入。2.传入了openId。三.控制微信支付按钮显示隐藏的代码。引入lodash主要使用防抖功能。五.进行微信搭桥,进行环境处理。一.场景 (完成代码见附录)四.点击微信支付后的流程代码。六.环境准备好后,拉起支付。

2022-11-04 13:59:42 2076

原创 发票自动识别功能前端开发(多表单动态生成)

多发票识别功能

2022-10-14 10:47:49 2138 2

前端审查文档评分作用,含css,js,ts,vue等

前端审查文档评分作用,含css,js,ts,vue等

2023-10-20

前端代码规范文档,js,css,html等

前端代码规范文档,js,css,html等

2023-10-20

空空如也

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

TA关注的人

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