自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 webpack学习笔记

项目中常常会遇到,生产环境,测试环境,开发环境配置不同的情况,我们可以提取这些环境中的公共部分,写进webpack.base.config.js。在webpack.dev.config.js和webpack.prod.config.js中引入webpack.base.config.js。webpack.prod.config.js中。webpack.prod.config.js中。webpack.dev.config.js中。webpack.dev.config.js中。package.json文件中。

2024-05-03 01:46:03 564

原创 vue-router源码解析

url改变触发监听事件 (原理见路由模式)改变vue-router里面的current变量vue监听current的监听者获取到新的组件render新组件。

2024-04-26 01:35:40 349

原创 vue3、vue2中nextTick源码解析

vue的异步更新策略意思是如果数据变化,vue不会立刻更新dom,而是开启一个队列,把组件更新函数保存在队列里,在统一事件循环中发生的所有数据变更会异步的批量更新,这一策略导致我们对数据的修改不会立即体现在dom上,此时如果想要获取更新后的dom状态,就要使用nexttick。即在一次事件循环中,更新了数据,把更新Dom的操作放入队列中,使用了nextTick,则把nextTick里的回调放入队列中,执行完所有的同步代码后,去执行微任务,即依次调用队列里的函数。里面用到了优雅降级,可以看看,不多写了。

2024-04-14 22:01:09 1459

原创 websocket原理及简单入门

在了解websocket之前,我们先来了解一下websocket出现之前的世界当我们在开腾讯会议或视频通话时,我们自己的影像会传给对方,对方的影像也能同时传给我们,这就是即时通讯技术即时通讯技术是实现:服务器端可以时地将数据的更新或变化反应到客户端,在Web中,由于浏览器的限制,实现即时通讯需要借助一些方法。这种限制出现的主要原因是,Web通信都是浏览器先发送请求到服务器,服务器再进行响应完成数据的现实更新。

2024-04-12 03:36:04 312

原创 前端监控告警平台原理,及如何捕捉全局错误,异步promise错误,资源错误,vue错误

监控告警平台可以监控并上报我们的网页在运行时发生的错误,那么监控平台的原理是什么呢,本文介绍了前端监控告警平台原理,包括window.onerror,window.addEventListener等方法.及如何捕捉全局错误,异步promise错误,资源错误,vue错误。

2024-04-12 01:16:42 705

原创 js正则表达式详解与常用代码讲解

javascript正则表达式真是学了又忘忘了又学,今天好好梳理一下语法,本文附有十来个常见的匹配正则表达式代码示例与讲解,但是这种写正则的事情以后还是丢给chat哥吧。

2024-04-09 22:54:49 1424

原创 js手写数组方法之map(),reduce(),filter(),foreach()

javascript语言中,foreach、filter、map和reduce是常用的集合操作方法。本文详细介绍了这四种数组方法的使用方式,和手写方法。

2024-04-09 02:39:02 1556

原创 css双飞翼布局、圣杯布局与左侧宽度固定右侧自适应布局

与双飞翼布局类似,但是顶端header和底端footer各自占据屏幕所有宽度,高度固定。/* 绝对定位会让元素脱离文档流进入浮动层,右侧元素能无视掉它 */代码实现跟双飞燕布局类似,只是加了个header和footer而已。/* 将margin-left设置为left盒子的宽度 *//* ::after伪元素清除浮动,解决父级塌陷问题 */左右宽度固定,中间宽度自适应,且要先渲染中间。

2024-04-07 21:56:11 674

原创 js中的同步任务,异步任务,宏任务与微任务,事件循环

同步任务:同步任务是按顺序执行的任务,每个任务需要等待前一个任务完成后才能开始执行。在执行同步任务期间,程序会阻塞并等待任务完成,然后再继续执行下一个任务。如console.log,异步任务:异步任务是不按照顺序执行的任务,其执行不会阻塞程序的运行。异步任务会被提交给异步执行的机制(如事件循环、回调函数等),并在后台或其他线程中执行。在任务完成后,会通过回调函数、Promise 或其他机制通知程序任务已完成,然后执行相应的回调函数或继续执行后续的代码。异步任务分为宏任务与微任务。

2024-04-07 17:42:47 434 1

原创 this.$refs[form].validate用法

【代码】this.$refs[form].validate用法。

2024-04-02 23:08:59 1071 1

原创 vue中使用antv-g6 graph-minimap组件时viewport视口大小显示不正常

拖拉graph时,viewport视口能动,但是放大缩小graph时,viewport就不动了,大小固定,而正常情况下viewport大小应该是跟随canvas大小改变而改变的,看网上的相似问题发现,可能是由于没写mode:【zoom-canvas】把const graph(可能在config里)中的 autoPaint:false,注释掉就行了。

2024-04-02 23:05:00 233 2

原创 vue el-autocomplete实现输入特殊字符触发远程模糊搜索,并将下拉框内值附加到原输入值之后

一年前的项目记不太清了 因为要准备面试所以回忆一下。

2024-03-30 01:32:56 523

原创 opengl学习之猛虎出山写毕设(四)

cubemap有6张贴图,一旦提供了方向,OpenGL就会获取xyz方向向量触碰到立方体表面上的相应的纹理像素(texel),返回了纹理采样值。cubemap有opengl中的特殊纹理类型gl_texture_cube_map。今天晚上学天空盒,明天美美spa。

2023-04-10 01:01:43 84

原创 opengl学习之彻底疯狂写毕设(五)

使用很多频率和振幅不同的平滑函数,把他们叠加在一起就能创建一个柏林噪声。可以通过在每步使用其他的频率和振幅来创建不同特征的柏林噪声函数。例如,为了创建一个平滑滚动的丘陵,你可以使用大的振幅和小的频率的柏林噪声函数,同时小的振幅和高的频率,你可以创建一个平地,另外要创建非常颠簸的平面,应该选择小的振幅和低的频率。总之,我的项目仿照了我的世界,把获得的柏林噪声进行一些再加工的操作,把两个柏林噪声间的差值都设为世界中的一个草方块的高度,让草方块们均匀起伏。剩下的不写了,找不到当时抄代码的那个博客了。

2023-04-10 00:57:39 107 1

原创 opengl学习之半工半读写毕设(六)

aabb包围盒就是一个四四方方的盒子,正好把模型完整的框在里面,它的坐标轴也是横平竖直的,不能转方向。碰撞检测,遍历世界中的所有小方块,用算出来的这条射线与AABB包围盒的三个面做ray-AABB,判断射线与平面是否相交(slabs-method),这里的代码可以看Time-rendering这本书。用射线拾取,通过矩阵逆变换(就是摄像机那一章的有很多矩阵相乘的公式逆变换),将鼠标点击的视口坐标转换到世界坐标,获得1)由摄像机原点指向鼠标点击的一条射线D,2)摄像机原点O两个参数。赞美chatgpt门!

2023-04-10 00:51:19 110

原创 vue dialog form点击一行取消后,点击另一行取消,第二次点击的那行数据变成了第一次点击的那行数据

初始值也就是表单第一次绑定的值。浅拷贝给初始值赋值,给的内存地址,导致一个改变,另一个也会跟随变化。当点击表单对话框的取消按钮时,调用resetFields方法来清除表单数据内容,重置表单。如题,vue dialog form点击一行取消后,点击另一行取消,第二次点击的那行数据变成了第一次点击的那行数据,我de了好久的bug,终于发现是。resetFields方法执行时,form表单中的值变成了初始值,导致表单里的数据也变成了初始值,所以才会点哪一行都会变成第一次点击那行的数据。

2023-03-17 15:21:59 346 1

原创 js中this的绑定规则

看了b站coderwhy老师的JavaScript高级 《this绑定规则》,做一些学习笔记。函数在调用时,JavaScript会默认给this绑定一个值;this的绑定和定义的位置(编写的位置)没有关系;this的绑定和调用方式以及调用的位置有关系;this是在运行时被绑定的;

2023-02-14 00:28:52 74

原创 ajax,xml,axios,html学习笔记

XML:可扩展标记语言,被设计来传输和存储数据JSON:现在用的都是json优点:无需刷新就可与服务器端通信;允许根据用户时间来更新部分页面缺点没有浏览历史,不能回退;跨域;SEO不友好。

2023-02-12 01:05:51 69

原创 opengl学习之手忙脚乱写毕设(三)

由于图片的长宽各不相同,所以设置宽高从0开始,1结束,便于插值。给我们想画的图形的每个顶点设置uv坐标,就可以通过 uv坐标*图片实际的长宽 来知道到底用图片的哪个点上的颜色。texture unit:texture锚定点,用来分别指认很多纹理贴图,如GL_TEXTURE0-GL_TEXTURE15。纹理环绕方式:当顶点uv坐标超出默认范围0-1时,选择不同的选项以获取不同的视觉效果输出。纹理过滤:纹理像素低时采用的纹理过滤方式,GL_NEAREST和GL_LINEAR。

2023-02-11 16:35:38 111 4

原创 opengl学习之大难临头写毕设(二)

个人学习记录安装glfw和glad并配置,vs 报错:error: C1189: #error: OpenGL header already included, remove this include, glad already provides it。

2023-02-11 02:55:21 163

原创 hku cs笔经面经 自留

hku cs笔试面试,含题,tl等

2023-02-09 22:48:51 815

原创 从零开始的答辩毕设-3d图形设计

opengl中glew,glfw,glad,SOIL以及cmake的安装方法

2023-01-04 02:05:56 119

原创 HTTP状态码与http发展过程

200:成功请求,服务器接受请求并成功处理301和302都是重定向,也就是从一个地址跳到另一个地址,是通过各种方法把各种网络请求重新定个方向,转到其他位置的意思。浏览器在拿到服务器返回的301 302状态码后会自动跳到新的url地址,用户看到得效果就是输入的地址A瞬间变成了另一个地址B。状态码为302,网页获取不到数据时,解决方法可以是把f12里的url复制粘贴到浏览器里,再刷新原来的页面不同点:301:永久跳转,旧地址的资源永远的不能用了,浏览器取得新的内容的时候也会把地址由旧地址变成新地址。而且浏览

2022-12-04 22:05:08 93

原创 Element-UI 的table使用v-if顺序会乱飞的问题

table用v-if顺序乱掉

2022-10-19 09:58:01 737

原创 flex布局学习

flex布局学习笔记

2022-10-19 09:44:04 64

原创 vue中的数据处理

vue学习笔记

2022-10-19 09:43:32 163

原创 git操作

git基本操作

2022-10-13 17:50:55 128

原创 js中的async/await

js中的async await

2022-10-09 11:06:24 373

原创 node.js/npm/nvm/vue/element ui配置安装

今天先在新电脑(windows)上把软件安了,记一下前端需要的软件都是咋安的

2022-09-23 16:43:11 574

空空如也

空空如也

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

TA关注的人

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