- 博客(57)
- 收藏
- 关注
原创 前端高频面试--查缺补漏篇
四次挥手之所以是四次,是因为在TCP中数据的传输是双向的,每一方都需要单独关闭连接,而且可能还存在未传输完的数据段和对方的ACK报文,因此需要四次握手来确保双方的连接被正确关闭。,通过盗用用户的身份信息发起请求。诱导用户跳转到新页面,如果目标站点只使用cookie,并且kookie是允许跨域的,此时就能拿到用户的cookie,来模拟用户进行操作。客户端->服务端,回复ACK响应确认,此时客户端处于TIME_WAIT状态,需要经过一段时间确保服务器收到自己的应答报文后,才会进入CLOSED状态。
2024-03-03 21:30:14 1145
原创 前端高频面试题--性能篇
View 传送指令到 Controller,Controller 完成业务逻辑后,要求 Model 改变状态,将新的数据发送到 View,用户得到反馈。原来和现在都有则进行比较,如果为文本结点就替换值,为静态资源不处理,都为正常结点的时候就直接替换结点。采用双向数据绑定,View的变动,自动反映在 ViewModel,反之亦然。诱导用户跳转到新页面,如果目标站点只使用cookie,并且kookie是允许跨域的,此时就能拿到用户的cookie,来模拟用户进行操作。1. MVC数据是单向的,MVVM是双向的。
2024-02-28 23:00:49 355
原创 Vue/React 前端高频面试
挂载阶段(beforeCreate,created,beforeMounted,mounted)、更新阶段(beforeUpdate,updated)、销毁阶段(beforeDestroy,destroyed)v-if性能不及v-show。例如绑定数组的索引index,一旦数组内元素进行增删,后续节点的绑定的key也会发生变化,导致diff进行多余的更新操作。2. keep-alive有三个属性,include-匹配的组件缓存,exclude-排除匹配的组件其他都缓存,max-最多能缓存的组件数。
2024-02-27 23:09:41 1471
原创 JS前端高频面试
(Symbol是一个函数,会返回一个Symbol类型的值,每个Symbol函数返回的都是唯一的,可以作为对象的key。那么如果想要在函数a外面访问到函数a里面的变量,这可以将函数b return出去,所以我们是为了利用到闭包函数才将它return出去,这就造就了闭包就是和return关联在一起的误区。3. 需要注意的是,在map和forEach里面终止循环只能通过try catch,return是没用的,如果有需要通过判断某个条件return终止的情况,可以使用some。这个一层一层的关系就叫做作用域链。
2024-02-21 23:24:47 1111
原创 HTML + CSS 高频面试题
三列都设置float: left。再给左边元素margin-left: -100%,右边元素margin-left: 负数元素宽度,再利用相对定位定位到两边。简单来说BFC是页面中的一个隔离的独立容器,让空间里的子元素不会影响到外面的元素布局。CSS盒模型本质是一个盒子,封装周围的HTML元素,包括margin,border,padding,和content。浮动会脱离文档流,当父元素不设置高度的时候,需要子元素撑开,而子元素浮动就会导致父元素高度塌陷的问题。共有五个单位,px,rem,em,vw,vh。
2024-02-21 17:05:03 678
原创 uniapp富文本文字长按选中(用于复制,兼容H5、APP、小程序三端)
改造后:(由于uniapp rich-text ios无法实现复制功能,故加上:user-select="selectable"兼容ios)1. 查看u-parse源码发现小程序走到以下逻辑:(没有传入selectable属性,需要将selectable传入trees组件)2. 进入trees组件,找到富文本展示逻辑,发现使用uni-app的rich-text,支持selectable属性。
2024-02-18 10:38:40 2192
原创 uniapp复制(解决uni.setClipboardData某些机型h5不支持)
【代码】uniapp复制(uni.setClipboardData某些机型h5不支持)
2024-02-17 12:15:42 495
原创 uni-app获取response header响应头(h5/app/小程序三端)
【代码】uni-app获取response header响应头(h5/app/小程序三端)
2023-12-12 15:43:38 2329 1
原创 前端Aes加密、解密(crypto加密解密,前后端分离,AES加密解密)
【代码】前端Aes加密、解密(crypto加密解密,前后端分离,AES加密解密)
2023-12-11 14:59:25 1070
原创 antd+全屏的坑(全屏下a-modal/下拉框等不展示)
方案一 :改变挂载对象。挂到根节点上:document.documentElement,再使用定位fixed目标元素,改变z-index。(全屏的还是根节点,全屏时给跟节点加class,再进行fixed)。方案二:全屏的时候给顶级元素加上一个class,写一份存在这个class下的样式去display:none需要隐藏的元素,关闭全屏时去掉这个class即可。原因:position:fixed进行相对于视口(viewport)的定位,且元素的位置在屏幕滚动时不会改变。(这个方式比较简单粗暴)
2023-10-30 19:59:35 1646
原创 dps生成骨架屏
5. 运行 dps start 即可在filepath设置的文件下生成html文件。injectSelector: 'body' // 生成的骨架屏插入页面的节点。filepath: 生成的文件名(要先创建一个同名的文件)2. 初始化生成dps.config.js文件。3. 配置dps.config.js文件。url:必须要是外网可访问的链接。
2023-07-06 15:58:59 136
原创 umijs/max使用微前端(子应用配置)
1. 写子应用的id并且规定子应用打开的端口【package.json文件】其中我在package.json中配置的子应用id为:passport。3. 查看是否配置成功:访问 url+子应用ID 查看是否成功。,可以一键启用 Qiankun 微前端开发模式。若以上链接可访问成功说明配置完成。
2023-06-25 11:49:08 1630
原创 React + antd 树Tree实现树节点的增删改(自定义树节点插槽)
示例:实现鼠标悬浮展示按钮元素原理::hover结合display: none。默认为display: none,:hover时修改display的值即可。
2023-06-22 15:41:29 2867 5
原创 umijs项目插件开发流程
目录结构创建plugins文件夹插件引入配置文件中(.umirc.ts或config/config.ts)配置插件参数配置的参数是插件文件中describe定义好的。
2023-06-22 15:27:50 317
原创 React andDesign Input赋值defaultValue不生效
react中使用antDesign没有双向绑定,Input组件需要配合使用defaultValue来模拟数据反选操作。直接使用发现并未生效。解决方式:给input增加key值,保证唯一。
2023-06-15 17:55:55 513
原创 vue3 ref和reactive区别
reactive定义复杂的数据类型的数据,ref推荐定义基本数据类型。1. ref必须通过.value读取/修改值,reactive不需要2. reactive第一个接收参数必须是一个对象,ref可以为任意类型使用
2023-05-06 16:47:33 256 1
原创 js获取元素距离窗口位置
踩坑:使用offsetTop。offsetTop返回元素的上外缘距离最近采用定位父元素内壁的距离,如果父元素中没有采用定位的,则是获取上外边缘距离文档内壁的距离。返回:元素的大小及其相对于视口的位置:left, top, right, bottom, x, y, width, height。
2023-04-22 18:03:44 935
原创 vue3使用ref(script: setup+ts)
在vue2中想要调用子组件里的方法直接使用this.$ref.OrderListRef.getList()这种方式即可,在vue3中有几个点需要注意:
2023-04-22 16:56:45 225
原创 vue3+vite运行报错记录:error when starting dev server
vue3+vite运行报错:error when starting dev server:TypeError: Cannot read properties of undefined (reading 'options')
2023-04-21 16:45:55 5094
原创 全屏及踩坑
解决方案二:改变挂载对象:挂到根节点上:document.documentElement,再使用定位fixed目标元素,改变z-index。原因:position:fixed进行相对于视口(viewport)的定位,且元素的位置在屏幕滚动时不会改变。全屏状态下,蚂蚁金服包含下拉框组件的下拉框不展示(包括时间选择,选择下拉框等)原因:下拉框是往body里面插入的,全屏的元素盖住了下拉框。原因:在没有全屏的状态下触发退出全屏的操作。解决:退出全屏时,判断一下当前的全屏状态。
2023-03-28 18:20:54 870
原创 图片拖拽/放大/缩小并获取图片偏移量合缩放比(学习自用)
功能简介:在矩形框内拖拽图片到合适位置(图片可超过自身宽度的一半),并可对图片进行放大缩小操作。获取到图片相对于矩形框的位置及图片缩放比例。效果图完整代码DragImg.vue文件<template> <div> <div class="box margin-b15"> <img class="avatar" v-show="imageUrl" :src="imageUrl" draggable="false" /
2023-03-13 16:30:44 400
原创 getBoundingClientRect() 获取元素的大小及其相对于可视区域的位置
getBoundingClientRect()可获取元素的大小及其相对于可视区域的位置(不包含文档卷起的部分)
2023-03-12 14:47:02 480
原创 前端验证码之-滑动验证码
给控件设置一个原始背景色(即解锁前背景颜色),在上面覆盖一层绿色背景色区域(相对于原始背景定位),通过监听鼠标偏移量left来不断的设置绿色区域的宽度,当没有滚动到最大偏移量松开时回到初始位置,达到最大偏移量时表示校验通过(此时改变校验文案及图形)
2023-03-12 10:45:42 1935
原创 fromCharCode()和charCodeAt() Unicode编码操作
fromCharCode()和charCodeAt() Unicode编码操作。
2023-03-10 15:28:26 417
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人