自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【项目实战】mitt.ts轻量级的事件发射器库

mitt 是一个轻量级的事件发射器库,主要解决在JavaScript和TypeScript项目中事件的发布和订阅问题。它允许开发者在不同的部分之间进行松耦合的通信,而不需要直接引用彼此。

2024-12-23 15:29:53 509

原创 【Vue3学习】使用ref调用子组件的方法,实现子组件的显示与隐藏

v3中在子组件标签上使用ref属性,调用子组件的方法或变量

2024-12-23 11:17:56 955

原创 【项目实战】location.href 实现文件下载

项目中看到的一种使用拼接url访问后台的文件下载方式

2024-12-20 15:28:22 545

原创 【Vue3学习】Vue3+setup语法糖+typeScript中的组件传值

v3+setup+ts中的常用组件传值方式:父子/非父子,provide/inject爷孙双向传值

2024-12-17 15:11:13 956

原创 【Vue3学习】ref,reactive,toRef,toRefs的功能与用法区别

ref,reactive,toRef,toRefs的使用;解构,展开运算符对响应式的影响

2024-12-17 10:03:20 613

原创 【TS语法学习】泛型

一些基本的泛型,如何使用.

2024-12-16 22:29:26 454

原创 【TS语法学习】ts中的断言运算符

类型断言的用法和一些断言运算符的学习

2024-12-15 22:32:44 868 1

原创 【TS语法学习】主要数据类型与变量声明时的类型注解

了解学习TypeScript中的基本数据类型,如何声明,怎样添加类型注解

2024-12-15 21:29:28 1458

原创 【JS学习】javascript中处理字符串的方法

简单归纳,红色为常用

2024-12-09 01:14:05 442

原创 【JS学习】如何封装提供回调方法和带有默认参数的函数

使用callback函数封装代码,可以解决异步任务带来的问题,但是多个回调函数嵌套会造成回调地狱的问题.但是,依旧存在需要单独封装功能函数的情况.例如当前存在一个业务逻辑,需要异步解决,并且需要等待其完成后获取数据在执行后续逻辑,同时需要将这部分的功能代码提取出来进行封装以供复用.那么此时对这个单独的处理逻辑可以采用callback函数进行封装.可能我的描述不太清晰,但在实际工作中确实遇到需要这样做的情况。

2024-12-09 00:55:37 331

原创 【JS学习】javascript中的模块化导入和导出

默认导出:每个模块只能有一个默认导出,导入时可以使用任何名称。命名导出:可以有多个命名导出,导入时需要使用相同的名称或解构赋值重命名。混合导出:一个模块可以同时有默认导出和命名导出。动态导入:使用 import() 函数在运行时动态加载模块。

2024-12-09 00:01:20 434

原创 【浏览器知识】Cookies,Session Storage,Local Storage区别

用途:Cookies主要用于保持HTTP连接中服务器与客户端之间的状态信息。它们是服务器设置的,用于跟踪会话,记住用户偏好,以及实现其他功能。存储容量:每个域名最多可存储20个Cookie,每个Cookie的大小限制为4KB。存储位置:Cookies存储在用户的浏览器中,随每个请求发送回服务器。安全性:由于Cookies随每个HTTP请求发送,存在安全风险,如劫持和注入攻击。因此,敏感信息不应存储在Cookies中。同源策略:Cookies受同源策略限制,仅限于设置它们的域访问。使用建议:用于保持

2024-12-08 23:26:54 450

原创 【CSS学习】css中的样式穿透

在Vue 2中,可以使用 ::v-deep 伪类来进行样式穿透,Vue 3也支持这种写法。/deep/ 选择器曾经是Vue中用于样式穿透的一种方式,但在Vue 3中已被废弃。::v-slotted() 伪类用于影响使用了 的子组件样式。在Vue 3中,推荐使用 :deep() 伪类来进行样式穿透。/* 影响使用了 的子组件样式 *//* 影响子组件的样式 *//* 影响子组件的样式 *//* 影响子组件的样式 *//* 将样式应用到全局 */

2024-11-03 01:07:55 567

原创 【BUG解决】(vue3+echart报错):Cannot read properties of undefined (reading ‘type‘)

这是 vue3+echart5 遇到的报错:Cannot read properties of undefined (reading ‘type‘)用于读取响应式对象对应的普通对象,对这个普通对象的所有操作,不会引起页面更新。当渲染具有不可变数据源的大列表时,跳过响应式转换可以提高性能。作用:将一个由reactive生成的响应式对象转为普通对象。有些值不应被设置为响应式的,例如复杂的第三方类库等。作用:标记一个对象,使其永远不会再成为响应式对象。

2024-07-30 20:51:05 718

原创 【性能优化】在大批量数据下使用 HTML+CSS实现走马灯,防止页面卡顿(二)

上一篇只是简单演示了’下一张’的操作和整体的设计思路,这两天把剩余功能补全了,代码经过精简,可封装当成轮播组件使用,详细如下.

2024-07-22 09:56:10 1176

原创 【性能优化】在大批量数据下使用 HTML+CSS实现走马灯,防止页面卡顿(一)

大批量数据下实现走马灯,防止页面卡顿

2024-07-19 17:48:19 1071

原创 threejs tween补间动画(七)

于是得到这样的一个画面。

2024-06-26 15:01:14 408

原创 threejs 光影投射-与场景进行交互(六)

场景中有三个立方体,三种颜色.点击变成红色,再点恢复自身原有颜色。

2024-06-21 11:24:59 268

原创 threejs gltf模型加载(五)

【代码】threejs gltf模型加载(五)

2024-06-20 09:47:41 468

原创 threejs材质的贴图(四)

【代码】threejs材质的贴图(四)

2024-06-18 20:53:30 553

原创 【性能优化】前端加载,渲染十万条数据

子盒子C,信息展示的载体,里面是一定数量的单条展示信息盒子,子盒子C相对于父盒子A绝对定位,每次滚动时修改偏移量,保证信息显示在父盒子A的视口,不随滚动卷到其他地方。项目中某个弹窗展示设备信息卡片,返回的设备信息很多,页面样式有很花哨,导致渲染极其缓慢。子盒子B,用于模拟滚动条长度,高度设为单条展示信息盒子的高度×子盒子的数量。采用虚拟列表的方式,滚动时,dom元素数量不变,只改变展示的数据。//冻结数据,优化性能,//接收传入本组件的超大数据。//列表展示的开始索引。//列表展示的结束索引。

2024-06-03 15:24:42 573

原创 threejs的基本属性(三)

1.创建场景,摄像机,渲染器,几何体,材质,网格。场景.add(网格),网格加入场景中。相机的轨道控制器是个单独的对象。场景.add(坐标辅助器)渲染 = 场景+摄像机。网格 = 物体+材质。

2024-05-23 16:14:39 251

原创 如何在本地部署threejs文档(二)

找到你需要的版本下载对应的代码压缩包。

2024-05-17 10:19:47 284

原创 【性能优化】使用 ResizeObserver解决页面尺寸变动,echarts或地图等自适应的一种方法(监听特定DOM元素尺寸变化)

项目中,页面做了响应式布局.大量使用了弹性布局,导致盒子没有固定的宽高,在菜单切换或者窗口缩放时,echarts或者地图元素就会出现扭曲,错版,填充不完全,溢出等问题.当通过监听window的resize事件时,难以精准捕捉目标容器,同时echarts的resize()方法并不一定达到效果。

2024-04-23 20:39:48 2056

原创 【BUG解决】浏览器页面缩放导致弹性布局页面无限扩张的问题(overflow的妙用)

根据原型设计和需求文档,搭建如图项目框架(vite+vue3+js),主要页面使用弹性布局搭建.但是在反复缩放页面的情况下,main盒子出现越来越宽的情况,缩放次数越多,main盒子越宽,导致出现滚动条和页面被无限拉伸.

2024-04-01 17:46:58 808

原创 【BUG解决】Error: Cannot find module ‘@rollup/rollup-win32-x64-msvc‘

新项目需要使用vite搭建一个v3项目,之前也弄过,但项目创建后却一直无法跑起来,大聪明的我一直没有注意到这个问题。

2024-03-27 21:03:28 9128 4

原创 【项目实战】vue-office/docx插件实现docx文件预览

【代码】vue-office/docx插件实现docx文件预览。

2024-03-25 16:52:51 4508

原创 【Vue3学习】vue3组合式api(一)

Vue 3 中引入了一个新的 Composition API,其中包含了 setup 函数,用于替代 Vue 2 中的 data、methods 等选项。setup 函数提供了更灵活和可组合的方式来组织组件的逻辑,并且更加符合函数式编程的思想它的执行比created还要早,在这里打印不了this,v3的项目几乎用不到this.setup是进入页面时自动触发而定一个函数。

2024-03-22 17:05:24 975

原创 filter过滤器

在 Vue.js 中,过滤器(Filters)是一种用来格式化和处理模板中显示的数据的技术。过滤器可以用在两个地方:双花括号插值表达式(Mustache 插值)和 v-bind 表达式中。过滤器通过在双花括号插值表达式中使用管道符 | 的方式来应用。myFilter是一个过滤器的名字,用于将 message 的值转为大写后显示在页面上。Vue.js 会自动将 message 的值作为过滤器的第一个参数传入过滤器函数中。也可以传递参数给过滤器,多个参数之间使用 | 分隔。

2024-03-21 16:58:00 250

原创 【demo】dom元素+CSS实现阶梯动画效果

我叫它彩虹阶梯

2024-03-20 15:22:27 544

原创 threejs简单创建一个几何体(一)

拖动网页,刷新后画布尺寸发生变化,再次拖动窗口,会出现空白。这样创建的几何模型是纯色的方块,效果如上图。这一步将前面的设置全部加入到画布中。// 设置摄像机z轴的空间的位置。// 设置几何体的材质(纯色)// 将网格对象添加到场景中去。// 把渲染器添加到页面中去。// 设置几何体皮肤(贴图)// 设置渲染器场景的大小。// 给网格对象添加动画。// 4.创建几何模型。// 2.创建摄像机。// 3.创建渲染器。

2024-03-14 16:29:12 452

原创 【Vue2学习】vue插槽的基本使用

在Vue.js中,可以通过使用默认插槽来在组件中插入内容。默认插槽允许你在父组件中传递任意内容给子组件,并在子组件中使用这些内容。如果在子组件中的slot中写内容,则为默认内容,父组件未插入值的情况下显示,插入则被覆盖。在父组件页面的子组件标签中插入值,需要用template标签,v-slot:""指定这段内容是插入哪个插槽的。作用域插槽可以从子组件传递数据到父组件,写一个表格的例子。通过子组件的slot标签将子页面的数据传递到父组件。/* 设置细线边框的颜色和宽度 *//* 设置表头的背景颜色 */

2024-03-13 16:14:15 959

原创 xlsx.js读取本地文件,按行转成数组数据

/读取文件内容,并以二进制字符串的形式传递给 reader.onload 的回调函数进行处理。//遍历工作表的名称(workbook.SheetNames)并获取每个工作表的数据。//通过 workbook.Sheets[sheetName],获取到具体工作表的数据。//这里我们将 type 设置为 'binary',以二进制字符串的形式读取文件。//通过 event.target.files 获取到选择的文件。//通过循环遍历每一行数据),将每一行的数据打印出来。//将工作表的数据转换为数组形式。

2024-03-11 17:00:34 732

原创 vue项目通过nginx部署到服务器

当你在开发环境中运行 Vue 项目时,devServer 的代理配置允许你将特定的请求代理到后端服务器,以便在开发过程中模拟生产环境中的 API 请求。但是,一旦你将 Vue 项目部署到 Nginx 中,Nginx 将成为前端和后端之间的统一入口,所有的请求都将由 Nginx 接收并处理。因此,如果你的 Vue 项目中有依赖于代理的请求,你需要在 Nginx 配置中设置适当的代理规则,以确保这些请求被正确路由到后端服务器。部署的服务器是阿里云买的,使用finalShell根据账号秘密链接服务器即可。

2024-03-08 15:19:46 842

原创 简单整理vue-router,路由知识

在实际使用中,通过 path 传递参数时,并不能直接在目标页面的组件中通过 $route.params 获取到参数值,因为 path 传递参数是基于路由配置中动态参数的匹配,而非通过 params 属性传递参数。在main.js中 书写,会造成单个js文件过于臃肿的情况,需要将路由配置部分抽离出来,在src下新建router文件夹,新建index.js文件。2.全局解析守卫(beforeResolve):在路由被解析之后,组件被激活之前调用,可以用来做一些全局的前置操作。

2024-03-06 17:33:22 583

原创 vscode代码片段设置,一键生成预编代码

在vue文件中输入你的指令接回车,即可出现保存的代码片段。选择新代码片段,在这里给你的代码片段文件取个名字。选择新代码片段,也可在现有代码片段上增加。点击左下角落设置按钮。

2024-02-28 14:54:21 403

原创 websocket实现一个局域网在线摸鱼聊天室

第一个前端项目,搭建聊天室页面,同时使用Websocket API,与服务端进行通信。第二个项目,使用node环境,下载ws包,搭建服务。// 为WebSocket添加事件监听。'websocket连接建立完毕'// 生成WebSocket对象。

2024-02-27 15:22:53 1345 2

原创 奇怪的需求之与图片做交互

2.观察点击事件传入的参数,e.target.clientWidth和e.target.clientHeight是图片被点击时的宽和高,同时存在e.offsetX和e.offsetY,代表鼠标点击位置相较于点击对象的偏移值.3.由已知条件可知:点击事件发生时鼠标在X方向的偏移值与图片元素此时的宽度的比值是固定的,同理Y方向的偏移值和图片元素此时的高度之比也是固定的.通过这两个比值的范围,可以粗略判断当前点击位置是否在图片对应的位置上。// 判断滚轮是上滚还是下滚,对应的进行放大缩小操作。

2024-02-22 14:34:34 2615

原创 vue2中几种组件传值方法

父组件在子组件标签中传入fatherMess,在子组件使用$emit,约定子传父事件名,将子组件的数据传递到父组件.通过按钮修改,可以发现,这里的传值是响应式的​ 1.在父组件中给子组件标签添加属性​ 2.在子组件中使用props接受数据​ 3.子组件中使用数据,可以直接访问。

2024-02-21 17:16:37 1196

原创 openlayers地图点击标记点,弹出当前位置自定义弹窗(三)

1. 效果图2. 代码<template> <div class="container"> <div id="map" style='width: 100%; height: 100%;border: 5px solid #a4cdff;'> <div class="toolBox"> <div class="messageBox" v-show="isShow"> <di

2024-02-19 16:38:54 3941

空空如也

空空如也

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

TA关注的人

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