自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(191)
  • 资源 (3)
  • 收藏
  • 关注

原创 MAC 查看公钥私钥

如果在输出的文件列表中发现id_rsa和id_rsa.pub的存在,证明本地已经存在SSH密钥,请执行第3步。复制打印出来的信息,在GitLab或者GitHub的SSH Keys中进行相应设置即可。命令:ssh-keygen -t rsa -C “自己的Email地址”命令:cat /Users/电脑用户名/.ssh/id_rsa.pub。注意:执行完成后会有一些列提示输入密码的指令,直接回车即可。命令:ls -al ~/.ssh。我的电脑用户名,就是我名字的全拼。

2024-06-26 18:32:54 1884

原创 React 生命周期,对比vue学习

挂载时:类中的构造器充当了生命周期,此时拿到数据源render:相当于vue中的 beforeMount,还拿不到 dom:挂载完成,可以拿到 dom更新时render父组件传参 New props,修改数据源 setState,强制更新 forceUpdated 都会重新渲染 render:更新完成卸载时:组件即将卸载时执行。

2024-06-21 14:07:48 755

原创 vue实现全屏screenfull-封装组件

【代码】vue实现全屏screenfull-封装组件。

2024-06-19 17:40:21 487

原创 VUE 项目用 Docker+Nginx进行打包部署

这个文件将被 Nginx 加载以配置网站的行为,例如设置代理、重定向等。这意味着当你访问 Nginx 服务器时,这些静态文件将被提供给客户端。命令重新启动它,这次使用正确的端口映射。端口,你需要确保 Docker 容器的端口映射也相应地设置为。:指定基础镜像,这里使用的是 Nginx 的官方镜像,标签为。目录中的所有文件复制到 Nginx 的默认网页根目录。: 首先,你需要找到容器的 ID 或名称。命令加上容器的 ID 或名称来停止容器。这将覆盖默认的 Nginx 配置。命令列出所有正在运行的容器。

2024-06-18 15:58:16 1997 1

原创 react传参有哪些常用方法?--Props,Context API和Redux全局管理

在 React 中,父子组件之间的传参主要通过以下几种方式实现:1) Props 传递:父子传参2)Context API: 跨多层组件传递数据3) Redux: 全局状态管理库。

2024-06-17 11:36:52 875 1

原创 React中Hooks--useEffect | useState | useCallback | useMemo

useEffect提供了一种灵活的方式来处理组件的副作用操作,它使得函数组件能够执行原本需要在类组件的生命周期方法中执行的操作。通过依赖项数组,useEffect能够智能地决定何时执行副作用函数,从而避免不必要的副作用执行和潜在的性能问题。useState是函数组件中处理状态的核心 Hook,它使得在函数组件中使用状态变得简单直接。通过useState,你可以轻松地添加、更新和维护组件的状态,同时享受 React 的响应式更新和性能优化。

2024-06-14 10:54:56 1227 1

原创 VUE2.7项目配置webpack打包-详细操作步骤

Webpack是一个打包工具,可以把JS、CSS、Node Module、Coffeescrip、SCSS/LESS、图片等都打包在一起,因此,现在几乎所有的SPA项目、JS项目都会用到Webpack。GitHub为https://github.com/webpack/ webpack。

2024-06-07 17:03:35 2446

原创 MAC彻底清除docker

背景:午睡醒后晕乎乎的点了docker升级,升级完,点击docker app,点击强制重启,真的是手欠啊。。。问题:最新版的docker跟mac系统不兼容;要么把电脑升级到最新,要么把docker进行降级;我的决定是,docker降低版本。

2024-06-05 17:36:21 2629

原创 Object.defineProperty 和 Proxy 响应式原理 vue2 vue3

对比了上面两种语法是不是就懂了,defineProperty只能响应首次渲染时候的属性,Proxy需要的是整体,不需要关心里面有什么属性,而且Proxy的配置项有13种,可以做更细致的事情,这是之前的defineProperty无法达到的。:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性,默认值为false。方法允许精确添加一个属性到对象上,或者修改对象的现有属性,并返回这个对象。提供了一种更灵活的方式来定义或修改对象的行为。:表示能否修改属性的值。

2024-06-05 14:20:42 324 1

原创 js中的事件循环机制(宏任务和微任务)

JavaScript的事件循环机制是其非阻塞I/O模型的核心,它使得JavaScript能够在单线程环境中高效地处理异步操作。、I/O操作、网络请求、UI渲染等每个宏任务执行完毕后,会检查并执行所有微任务队列中的微任务的.then().catch().finally(),以及。

2024-06-05 11:34:25 1012 1

原创 Monaco-Editor在Vue中使用(实现代码编辑与diff代码比较)--类似vscode代码编辑器

Monaco-Editor 是一个由 Microsoft 开发的 Web 代码编辑器,它是 Visual Studio Code 的浏览器版本。在 Vue 项目中集成 Monaco-Editor 可以提供代码编辑、语法高亮、智能提示等功能。src/codeEditorMonaco.vue或者把以下代码放到app.vue文件中;1、安装使用,最好安装指定版本,我是 vue2 ,安装的版本。2、配置vue.config.js。

2024-05-27 15:38:26 1134

原创 vue使用marked和highlight.js实现代码高亮效果

marked是对markdown进行解析的插件,它可以把markdown语法解析成html语法,从而实现页面效果,而highlight.js是对解析出的代码实现高亮效果。安装:避免踩我走的坑,安装尽量按照这个版本安装。代码:index.vue。

2024-05-15 17:07:18 1041

原创 VUE 滚动到指定区域scrollIntoView

背景:当前 VUE 页面数据量很大,右侧出现滚动条, 进入该页面,页面定位到指定区域;项目要求: 进入页面,定位到指定行(红色标记)

2024-05-15 11:40:58 320

原创 mock/json数据

【代码】mock/json数据。

2024-05-13 17:04:31 283

原创 RelationMap图谱--VUE,真实项目提供mock数据

import "vue-virtual-scroller/dist/vue-virtual-scroller.css" // 引入它的 css。import VueVirtualScroller from "vue-virtual-scroller" // 引入它。安装: npm i vue-virtual-scroller。VUE2 效果:左侧列表栏,点击右侧显示对应的图谱。代码:按照代码直接贴过去,直接出效果。(可以把数据放进去,直接看效果)

2024-05-13 16:50:01 334

原创 vue 文本中的\n 、<br>换行显示

注意: style中white-sapce: pre-wrap;一、背景: 后端接口返回数据以\n 作为换行符,前端显示时候需要换行显示;二、br 换行(可以使用v-html)三、把br替换成\n换行。

2024-05-08 11:44:15 5083

原创 实现 <el-cascader> 组件的回显功能

vue A页面,用户填写了el-cascader多层级数据,层级list数据从接口获取;vue B页面,多层级数据要进行回显,接口给到的数据是value值;

2024-04-26 16:52:30 1168

原创 JS中reduce的详细用法

reduce() 方法对数组中的每个元素执行一个由您提供的reduce函数(升序执行),将其结果汇总为单个返回值。reduce方法可做的事情特别多,就是循环遍历能做的,reduce都可以做,比如数组求和、数组求积、数组中元素出现的次数、等等。参数:参数:prev 必需。累计器累计回调的返回值;表示上一次调用回调时的返回值,或者初始值 init;cur 必需。表示当前正在处理的数组元素;index 可选。

2024-04-24 14:50:25 400

原创 前端JS算法--插入排序

插入排序的时间复杂度是 O(n^2),在数据规模较小或部分数据已经有序的情况下效率较高。对于大型数据集,插入排序通常不如更高级的排序算法,如快速排序、归并排序或堆排序。不过,插入排序是稳定的排序算法,且在某些情况下,如数据已经部分有序,它的实际性能可能比理论时间复杂度要好。插入排序(Insertion Sort)是一种简单直观的排序算法,它的工作原理是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加1的有序表。

2024-04-24 11:52:31 310

原创 前端JS算法--快速排序

它采用了分治策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。选择数组中的一个值作为基准,将数组中小于该值的数置于该数之前,大于该值的数置于该数之后,接着对该数前后的两个数组进行重复操作直至排序完成。:重新排列数组,所有比基准小的元素摆放在基准前面,所有比基准大的元素摆在基准后面。在这个分区退出之后,该基准就处于数组的中间位置。:从数组中选择一个元素作为“基准”(pivot)。:递归地将小于基准的子数组和大于基准的子数组排序。

2024-04-24 11:50:58 237

原创 前端JS算法-冒泡排序

原理:相邻的数据进行两两比较,小数放在前面,大数放在后面,这样一趟下来,最小的数就被排在了第一位,第二趟也是如此,如此类推,直到所有的数据排序完成。冒泡排序的基本思想是从第一个元素开始,依次比较相邻的两个元素,如果顺序不对则交换它们,一轮比较下来,最大的元素会沉到最后一个位置。<2>对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;<1>比较相邻的元素。<3>针对所有的元素重复以上的步骤,除了最后一个;/然后,对剩余的元素重复以上步骤,直到整个数组排序完成。

2024-04-24 11:48:58 295

原创 前端JS算法--归并排序

归并排序的时间复杂度是 O(n log n),这使得它在处理大型数据集时非常有效。然而,由于它需要额外的空间来存储合并后的数组,因此在空间复杂度上可能不如原地排序算法(如快速排序)高效。归并排序是一种分治算法,它将数组分成多个子数组,然后对这些子数组进行排序,最后将排序后的子数组合并成一个有序数组。整体思路如上图,需用递归实现,递归实现最重要的是写出递归公式、终止条件。:将数组分成两半,如果数组只有一个元素或为空,则不需要排序。:将排序后的两半合并成一个有序数组。:递归地对数组的两半进行归并排序。

2024-04-24 11:45:15 416

原创 VUE el-table列表搜索功能-纯前端实现

对el-table数据进行搜索筛选,但是不想调取接口,纯前端实现。

2024-04-22 11:36:40 927

原创 VUE 弹框的实现

AnBanDialog.vue(项目上封装好的弹框,主要是样式问题)项目中常用且比较基础的功能。

2024-04-22 11:21:00 494

原创 vue实现blob文档流下载文件

zip文件,图片等。

2024-04-19 14:15:07 715 1

原创 VUE 页码分页封装

VUE 页码封装组件。

2024-04-18 10:54:42 352 1

原创 VUE 弹框内容懒加载-真实项目

背景:VUE 页面,点击按钮,弹框,内容从接口获取,数据量比较大,鼠标滑到页面最底部,调取一次接口,分批加载;

2024-04-18 10:45:36 404 1

原创 vue2实现wangEditor富文本便捷器的封装使用--真实项目

vue实现wangEditor富文本便捷器的封装使用--真实项目

2024-04-09 14:36:10 895

原创 document.documentElement.clientHeight与document.body.clientHeight的区别

scrollHeight: 当元素的子元素高度大于父元素,父元素出现滚动条,此时父元素的clientHeight表示可视的高度,父元素的scrollHeight 表示页面的高度,包括溢出页面被挡住的部分,即其实就是子元素的高度。单位px,只读元素。clientHeight: 表示可视区域高度, 包括padding但不包括border、水平滚动条、margin的元素的高度。offsetHeight:表示可视区域高度,包括padding、border、水平滚动条,但不包括margin的元素的高度。

2024-03-25 14:10:34 218

原创 面试-简单算法题

对于上一步得到的数组 [‘h’, ‘e’, ‘l’, ‘l’, ‘o’],通过 reverse() 方法得到的数组为 [‘o’, ‘l’, ‘l’, ‘e’, ‘h’]。例如,对于输入字符串 “hello”,拆分后的数组为 [‘h’, ‘e’, ‘l’, ‘l’, ‘o’]。对于上一步得到的数组 [‘o’, ‘l’, ‘l’, ‘e’, ‘h’],通过 join(‘’) 方法得到的字符串为 “olleh”。7.数组求和:编写一个函数,接受一个数字数组作为参数,返回数组中所有数字的和。返回反转后的字符串。

2024-03-13 15:59:46 859

原创 2024 前端javaScript+ES6

2024 前端javaScript+ES6

2024-03-13 11:49:24 1024

原创 vue使用swiper(轮播图)-真实项目使用

vue使用swiper(轮播图)-真实项目使用

2024-03-01 16:46:29 2451

原创 Vue <component/> 特殊的内置组件使用

将is的值绑定为一个变量,is就变成了v-bind:is=“变量名”,即 :is=“变量名”。当变量名赋值为哪个自定义组件名时,拥有:is=“变量名”属性的元素就会渲染为响应的组件。在 Vue 中, 是一个特殊的内置组件,它可以根据提供的数据动态地渲染不同的子组件。这个功能非常有用,因为它可以让你在不同的情况下动态地切换和渲染不同的组件。

2024-02-29 18:17:47 543

原创 vue用户输入了访问地址,前端校验该地址是否可访问

el-form中,用户输入了访问地址,前端校验该地址是否可访问

2024-02-28 11:20:21 1160

原创 vue socket_demo即时通讯

vue socket_demo即时通讯

2024-02-05 14:42:13 169

原创 无头浏览器 Puppeteer-案例demo

我们日常使用浏览器的步骤为:启动浏览器、打开一个网页、进行交互。而无头浏览器指的是我们使用脚本来执行以上过程的浏览器,能模拟真实的浏览器使用场景。对网页进行截图保存为图片或 pdf抓取单页应用(SPA)执行并渲染(解决传统 HTTP 爬虫抓取单页应用难以处理异步请求的问题)做表单的自动提交、UI的自动化测试、模拟键盘输入等用浏览器自带的一些调试工具和性能分析工具帮助我们分析问题在最新的无头浏览器环境里做测试、使用最新浏览器特性写爬虫做你想做的事情~

2024-02-05 11:46:08 1352

原创 vue前端+nodejs后端通信-简单demo

vue前端+nodejs后端通信-简单demo

2024-02-04 14:27:45 1260

原创 npm---设置淘宝镜像时报“certificate has expired“的错误

npm---设置淘宝镜像时报“certificate has expired“的错误

2024-02-04 11:05:30 1285

原创 Relation-graph关系图/流程图,VUE项目基础使用

Relation-graph关系图/流程图,VUE项目基础使用

2024-02-03 16:28:06 2057

原创 html2canvas 截图功能使用 VUE

html2canvas 截图功能使用 VUE

2024-02-01 13:54:53 694

vscode安装包保存--mac

vscode安装包

2022-11-17

chrome--devtools Mac

chrome--devtools Mac

2022-08-03

实现情人节动态爱心效果(附代码h5+css+js)

3daixin body{ background:black; } .heart3d{ position:relative; width: 100px; height: 160px; margin:50px auto; animation: rot 20s linear infinite;/*自定义旋转旋转名称 20s 匀速旋转 无限重复*/ transform-style:preserve-3d; } /*关键帧:定义改变的值*/ @keyframes rot{ form{transform: rotateY(0deg)} to{transform:rotateY(360deg)} } .heart3d div{ position: absolute; left:0; top:0; width: 100px; height: 160px; border: 2px solid red; border-left:0; border-bottom: 0; /*margin:50px auto;*/ border-radius:50% 50% 0/40% 50% 0;/*斜杠前面是水平方向 斜杠后面是竖直方向 顺序是顺时针*/ transform: rotate(45deg); } var heart3d=//定义一个变量来保存 //获取元素 //在文档里面get获取元素 document.getElementsByClassName("heart3d")[0]; //在控制台里面的输出 console.log(heart3d) for (var i=0;i<36;i++) //for循环 循环变量 定义一个i变量 初始值0 循环36次 自己循环一次 { var oDiv =document.createElement("div");//在文档里面创建元素 oDiv.style.transform = "rotateY("+i*10+"deg) rotateZ(45deg) translateX(30px)"; heart3d.appendChild(oDiv);//往它里面添加子元素

2020-05-20

Shy-3D立体动态相册实现代码(源代码)

纯CSS实现鼠标经过3D立体动态展示图片特效代码 @charset "utf-8"; *{ margin:0; padding:0; } body{ max-width: 100%; min-width: 100%; height: 100%; background-size: cover; background-repeat: no-repeat; background-attachment: fixed; background-size:100% 100%; position: absolute; margin-left: auto; margin-right: auto; } li{ list-style: none; } .box{ width:200px; height:200px; background-size: cover; background-repeat: no-repeat; background-attachment: fixed; background-size:100% 100%; position: absolute; margin-left: 42%; margin-top: 22%; -webkit-transform-style:preserve-3d; -webkit-transform:rotateX(13deg); -webkit-animation:move 5s linear infinite; } .minbox{ width:100px; height:100px; position: absolute; left:50px; top:30px; -webkit-transform-style:preserve-3d; } .minbox li{ width:100px; height:100px; position: absolute; left:0; top:0; } .minbox li:nth-child(1){ background: url(img/01.png) no-repeat 0 0; -webkit-transform:translateZ(50px); } .minbox li:nth-child(2){ background: url(img/02.png) no-repeat 0 0; -webkit-transform:rotateX(180deg) translateZ(50px); } .minbox li:nth-child(3){ background: url(img/03.png) no-repeat 0 0; -webkit-transform:rotateX(-90deg) translateZ(50px); } .minbox li:nth-child(4){ background: url(img/04.png) no-repeat 0 0; -webkit-transform:rotateX(90deg) translateZ(50px); } .minbox li:nth-child(5){ background: url(img/05.png) no-repeat 0 0; -webkit-transform:rotateY(-90deg) translateZ(50px); } .minbox li:nth-child(6){ background: url(img/06.png) no-repeat 0 0; -webkit-transform:rotateY(90deg) translateZ(50px); } .maxbox li:nth-child(1){ background: url(img/1.png) no-repeat 0 0; -webkit-transform:translateZ(50px); } .maxbox li:nth-child(2){ background: url(img/2.png) no-repeat 0 0; -webkit-transform:translateZ(50px); } .maxbox li:nth-child(3){ background: url(img/3.png) no-repeat 0 0; -webkit-transform:rotateX(-90deg) translateZ(50px); } .maxbox li:nth-child(4){ background: url(img/4.png) no-repeat 0 0; -webkit-transform:rotateX(90deg) translateZ(50px); } .maxbox li:nth-child(5){ background: url(img/5.png) no-repeat 0 0; -webkit-transform:rotateY(-90deg) translateZ(50px); } .maxbox li:nth-child(6){ background: url(img/6.png) no-repeat 0 0; -webkit-transform:rotateY(90deg) translateZ(50px); } .maxbox{ width: 800px; height: 400px; position: absolute; left: 0; top: -20px; -webkit-transform-style: preserve-3d; } .maxbox li{ width: 200px; height: 200px; background: #fff; border:1px solid #ccc; position: absolute; left: 0; top: 0; opacity: 0.2; -webkit-transition:all 1s ease; } .maxbox li:nth-child(1){ -webkit-transform:translateZ(100px); } .maxbox li:nth-child(2){ -webkit-transform:rotateX(180deg) translateZ(100px); } .maxbox li:nth-child(3){ -webkit-transform:rotateX(-90deg) translateZ(100px); } .maxbox li:nth-child(4){ -webkit-transform:rotateX(90deg) translateZ(100px); } .maxbox li:nth-child(5){ -webkit-transform:rotateY(-90deg) translateZ(100px); } .maxbox li:nth-child(6){ -webkit-transform:rotateY(90deg) translateZ(100px); } .box:hover ol li:nth-child(1){ -webkit-transform:translateZ(300px); width: 400px; height: 400px; opacity: 0.8; left: -100px; top: -100px; } .box:hover ol li:nth-child(2){ -webkit-transform:rotateX(180deg) translateZ(300px); width: 400px; height: 400px; opacity: 0.8; left: -100px; top: -100px; } .box:hover ol li:nth-child(3){ -webkit-transform:rotateX(-90deg) translateZ(300px); width: 400px; height: 400px; opacity: 0.8; left: -100px; top: -100px; } .box:hover ol li:nth-child(4){ -webkit-transform:rotateX(90deg) translateZ(300px); width: 400px; height: 400px; opacity: 0.8; left: -100px; top: -100px; } .box:hover ol li:nth-child(5){ -webkit-transform:rotateY(-90deg) translateZ(300px); width: 400px; height: 400px; opacity: 0

2020-05-20

空空如也

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

TA关注的人

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