- 博客(73)
- 问答 (1)
- 收藏
- 关注
原创 浅拷贝和深拷贝AI
浅拷贝:适合只需要复制对象的第一层属性的情况。深拷贝:适合需要完整复制整个对象树的情况,推荐使用 Lodash 的cloneDeep或者自己实现递归函数。:简单快捷,但不支持函数、循环引用等复杂情况。第三方库:如 Lodash 和 Immer 提供了更强大且灵活的解决方案。通过选择合适的方法,你可以确保在修改新对象时不会影响到原对象的数据。
2025-03-12 15:13:29
1061
原创 关于0成本部署个人博客
这个博主讲的流程很全,而且回答也很及时。分享一个文章关于零成本搭建个人博客。而且有搭建过程中可能遇到的问题,当然这个博主就是我自己^v^
2024-05-27 19:02:31
289
原创 大文件上传
断点续传:将大文件分成多个小片段,每个小片段上传成功后记录其上传进度,若中断或失败后可从上次记录的进度继续上传。服务器端处理:在服务器端需要相应的接口来接收和处理分片上传的文件,并在上传完成后将其合并成完整的文件。上传进度的显示:可以使用XMLHttpRequest的upload事件或fetch API的ProgressEvent来获取上传进度,并将其显示给用户。文件分片大小的选择:过小的分片会增加上传请求的数量,而过大的分片可能会导致上传过程中的内存和网络压力增加。
2024-05-21 14:11:38
229
原创 vue3如何实现预渲染超详细保姆级
Vue 3提供了一种名为"静态站点生成(Static Site Generation,SSG)"的预渲染方式,可以将部分或全部页面在构建时预先生成为静态HTML文件。这些预渲染的HTML文件可以直接部署在任何静态服务器上,从而实现更快的首次加载速度和SEO优化。运行以上命令后,Vue将根据预定义的路由列表生成静态HTML文件,并保存在。在Vue项目的根目录下创建一个。在Vue项目的入口文件(一般是。的目录,并在其中新建一个。
2024-05-07 23:22:21
1170
2
原创 vue2前后端分离项目使用使用prerender-spa-plugin 让搜索引擎抓取到静态页面详细教程
通过以上步骤,即可使用 prerender-spa-plugin 实现前后端分离项目的预渲染,让搜索引擎能够抓取到静态页面。部署静态文件: 将生成的预渲染的静态 HTML 文件部署到服务器上,确保服务器能够正确地响应对应的路由。验证预渲染: 在浏览器中访问预渲染的路由,查看页面源代码,应该能够看到完整的静态 HTML 内容。事件,使 prerender-spa-plugin 开始渲染页面。的文件,用于配置 prerender-spa-plugin。添加预渲染事件: 在 Vue 组件的。
2024-05-07 23:16:48
878
原创 关于路由懒加载的实现
函数作为参数,用于在组件加载之前显示自定义的加载中效果。在Vue3中,懒加载的实现方式稍有不同。Vue3提供了一个新的函数。通常,我们可以将组件作为被引入的模块,并在。,用于定义异步组件。我们可以将组件作为参数传递给。在Vue2中,实现路由懒加载可以使用。组件,等到异步组件加载完成后,再渲染。这样在组件加载过程中,会先显示。需要注意的是,Vue3中的。
2024-05-07 22:58:19
536
1
原创 Vue2和Vue3的优化
在Vue.js 2中,你可以使用异步组件来延迟加载组件,以提高应用的性能。是一个返回包含异步组件的对象的函数。在加载和渲染组件的过程中,还可以使用。通过以上步骤,你可以在Vue.js 2中使用异步组件来优化应用的性能。组件来包裹需要异步加载的组件,以及指定加载时的提示组件。组件指定异步加载组件时显示的加载和错误提示组件。组件,直到异步组件加载完成后才会渲染真正的组件。上述代码中,当异步组件加载中,将会显示。函数的动态导入来定义异步组件。来加载异步组件,但是可以使用。来实现异步组件加载。
2024-05-07 22:52:29
267
原创 Actions和Mutations
Actions可以用来处理复杂的异步逻辑,并且可以进行一系列的异步操作,最后再通过commit方法来触发mutations来修改state。总结来说,mutations主要用于同步地修改state,而actions主要用于异步地修改state和处理复杂的业务逻辑。在组件中,通常会通过dispatch方法来触发actions,然后actions会通过commit方法来触发相应的mutations来修改state。只有mutations才能修改state,而且只能通过commit方法来触发mutations。
2024-05-07 22:29:49
703
原创 关于面试真题的压迫
使用事件委托:在父元素上监听事件,而不是为每个子元素都添加事件监听器。这样可以减少事件处理程序的数量,提高性能。缓存DOM查询:避免重复查询DOM元素,将查询结果存储在变量中,以便后续使用。减少DOM操作:尽量减少对DOM的修改操作,因为DOM操作是非常昂贵的。可以将多个操作合并为一次操作,或者先将需要修改的元素拷贝到一个文档片段中,修改完毕后再一次性插入到DOM中。使用文档片段:在需要插入大量DOM节点时,可以先将它们插入到文档片段中,然后再一次性插入到文档中。这样可以减少页面渲染的次数,提高性能。
2024-05-07 00:24:43
952
1
原创 虚拟DOM(Virtual DOM)
通过在内存中构建虚拟DOM树进行操作,可以避免频繁操作真实DOM带来的性能损耗,而通过diff算法可以减少对真实DOM的操作,进一步提高性能。此外,通过对比虚拟DOM树的差异,也可以准确地找出需要更新的部分,减少不必要的更新操作,提高开发效率。虚拟DOM的实现思想是通过比较新旧两个虚拟DOM树的差异,然后只对差异部分进行更新,以减少对真实DOM的操作。通过这样的比较过程,可以找出需要更新的节点,然后将变更一次性批量更新到真实DOM上,以减少对真实DOM的操作。
2024-05-07 00:14:00
222
原创 分片上传,分片合并
后端使用Node.js和Express框架,接收到每个分片后将其写入到文件中,当收到最后一个分片时,触发。对象来实现分片读取文件,并通过XMLHttpRequest发送每个分片到后端。标签和JavaScript的。事件,表示文件上传完成。前端使用了HTML的。
2024-05-03 15:46:44
664
原创 前端中如何实现大文件上传?
断点续传:将大文件分成多个小片段,每个小片段上传成功后记录其上传进度,若中断或失败后可从上次记录的进度继续上传。服务器端处理:在服务器端需要相应的接口来接收和处理分片上传的文件,并在上传完成后将其合并成完整的文件。上传进度的显示:可以使用XMLHttpRequest的upload事件或fetch API的ProgressEvent来获取上传进度,并将其显示给用户。文件分片大小的选择:过小的分片会增加上传请求的数量,而过大的分片可能会导致上传过程中的内存和网络压力增加。
2024-05-03 15:33:34
1291
原创 Vue监测数组改变的原理
Vue监测数组改变的原理是通过重写数组的方法(如push、pop、shift等)来实现的。在Observer实例中,重写数组的方法,将其改为先执行原始的数组方法,再触发数组的更新。它通过重写数组的方法,并在重写的方法中触发数组的更新。的属性,该属性值为一个Observer实例。数组中添加元素时,会触发数组的更新。准备一个原始的数组,用于存储数据。方法,给数组对象添加一个名为。
2024-04-30 05:00:00
335
2
原创 $nextTick源码解析
最后,通过闭包返回一个函数 queueNextTick,该函数接受一个回调函数 cb 和一个上下文对象 ctx,将回调函数包装成一个新的函数,并将其推入 callbacks 数组中。如果当前没有其他回调函数正在执行,则通过 timerFunc 来触发回调函数的执行。如果浏览器支持 Promise,就使用 Promise 的方式,创建一个 resolved 状态的 Promise 对象 p,并利用 p 的 then 方法在下一个 microtask 中执行 nextTickHandler 方法。
2024-04-30 01:48:17
240
原创 bind、call和apply
方法会创建一个新的函数,并将这个函数的执行上下文绑定到指定的对象。它不会立即执行函数,而是返回一个绑定了执行上下文的新函数。方法还可以传递参数给函数,这些参数会预先在绑定时传入。绑定后的函数在调用时将具有绑定执行上下文和传入的参数。方法的使用方式几乎相同。它们都会立即执行函数,并将指定的执行上下文绑定到函数,并将参数传递给函数。方法都是立即执行函数,并且都可以指定函数在执行时的执行上下文。都是 JavaScript 中用于改变函数执行上下文(即函数内部的。
2024-04-29 14:26:14
504
1
原创 在路由守卫中使用next(...to)的原理
方法的参数来控制路由导航的行为,包括放行、重定向、取消导航以及异步处理。方法可以接受不同的参数来控制路由导航的行为。守卫中,由于此时组件尚未加载,无法直接使用。方法的参数决定路由守卫的行为。综上所述,通过在路由守卫中使用。的方式来控制导航行为。
2024-04-26 02:01:26
1300
原创 使用H5+app在安卓5.1离线环境实现文字转语音
需要注意的是,在使用H5+ App中的5.1离线环境时,需要使用plus.Speech API来播放语音。对于其他浏览器环境,可以直接使用SpeechSynthesis API来实现语音合成功能。在Vue中实现中文文字转语音的方法可以使用HTML5的SpeechSynthesis API,同时需要考虑到在H5+ App里面的离线环境。
2024-04-24 21:38:35
1444
10
原创 NO Dead 大厂面石
/ 什么是buffer?// 在node中用于存放缓存数据的地方:// 当发送速率大于接收速率时buffer可以暂存多余的数据,直到接收方准备好了// 新建一个buffer对象使用 buffer.alloc(size,[fill],[enconding]) fill填充到缓冲区的值,enconding(fill的编码格式)// 1.初始化缓冲区// 写入值")// 超出长度的值将不会被输出// 使用tostring方法转换成字符串hello//将字符串转换成一个类数组。
2024-04-22 20:16:30
243
原创 前端nodead面试题
简单说说你对函数编程的理解1.稳定:对于给定数据输出相同的结果2.可以作为参数传递和返回,从而支持模块化3.什么时候需要什么时候调用(惰性计算)4.并发处理:就是因为不存在共享变量,所以各个任务不会发生因为同一个变量值的修改而无法继续执行的情况,可以将任务分成多个子任务同时执行5.因为无副作用的特点(修改函数内部的变量不会影响函数外部变量值的特点),使得单元测试和集成测试更加容易和准确6.缺点:因为有很多模块和递归问题可能会出现性能问题。
2024-04-21 23:41:18
348
原创 关于前端的那些知识点
/ 什么是虚拟DOM为什么使用虚拟DOM// 1.什么是虚拟DOM?// 又叫veirturalDOM react vue 跨平台的能力 rn weex// 实际上是以用js对象来模拟真实DOM节点的结构数据,Object类型啊,属性attrs,children子节点等信息也就是vNode// 虚拟dom节点与真实的dom一一对应// 2.为什么要使用虚拟DOM?// 因为操作真实DOM会发生性能问题,所以在rn weex 类型的项目中很忌讳去操作原生的dom的原因之一。
2024-04-21 16:44:39
537
原创 Javascript基础
函数采用递归的方式,依次发起请求,并将返回结果按照请求顺序依次添加到结果数组中。当所有请求都完成后,最终返回结果数组。// 原因:css和js会阻塞页面和渲染,加载时间长会导致页面出现长时间白屏。// --将首屏css内敛到html中,尽量不使用内联js。//--DNS缓存优化,预加载,确定可靠的DNS服务器。//延迟首屏不需要的资源加载,预加载首屏所需要的图片。//--优化精简代码结构Html,css文件和结构。2.请求排序不使用promise.All。2.1使用递归实现请求排序⭐。
2024-04-21 14:34:24
233
原创 大厂面试精华面试刷题
1.自定义unshift实现相同效果2.数组去重用vs2019来写这种练习题可以更直观的查看代码执行的效果,最后的代码是控制控制台执行完毕后不自动关闭3.获取指定范围内的随机数。
2024-04-20 22:35:53
645
原创 Echarts的基本使用与拓展
1.Vue中使用echarts以及在原生H5中使用echarts:下载。里面包括了双Y轴实现数据排序,让数据始终在柱条的最后面。1.声明一个变量来接受初始化后的实例。2.设置指定实例的配置对象。3.初始化echarts。2.导入echarts。
2024-04-18 15:27:18
329
原创 深拷贝与浅拷贝
数据类型:基本数据类型(String、Number、Boolean、Null、Undefined、Symbol (es6)引用数据类型(Object、Array、Function)基本数据类型是储存在栈中的,而引用数据类型是储存在堆中的在栈里面储存的只是她的指针指向堆中的地址。
2024-04-05 13:36:31
294
原创 组件递归和动态component
组件递归的应用场景主要用于菜单遍历等使用递归可以无限嵌套格式,精简了代码提高开发效率组件递归主要就是两点1.首先就是在父组件中已经注册使用后,传过来一个数组对象用于遍历页面,2.vue3中子组件实现递归的重要一点就是自己使用自己,实现递归无限嵌套1.组件里面可以使用双script标签第一个用于操作数据的正常标签第二个2.也可以直接使用setup标签里的name属性定义标签名但是前提是必须与文件名一致,调用的时候也要使用文件名直接在页面中使用。
2024-03-31 17:45:02
280
原创 vue3项目搭建企业级
配置git仓库git init git add . git commit -m '提交' 配置码云新建仓库,复制远程git连接到gitbash。配置文件pre-commit每次提交时候都自动格式化代码。配置语法规范,忽略文件。配置git自动格式化代码插件husky。配置package.json。stylelint忽略文件。
2024-03-29 22:42:33
712
原创 Vue3云里雾里知识点补充(面试重点)
1.vue2中只要是写在组件上的事件触发就都是自定义事件,2.在vue3中如果父组件上定义了@click原生dom事件只要子组件不使用defineEmits(['xxx'])接收他就是原始Dom事件3.如果使用了defineEmits(['click'])接收就是自定义事件,可以用来实现子传父,但是不建议使用原生dom事件定义自定义事件引入父组件传过来的没有被props接受的就都存在了useAttrs里面这时候我们可以使用补充:在父组件的子组件标签上用的属性都可以直接传到attrs身上
2024-03-28 15:39:01
1204
原创 Vue3.0云里雾里
/基本类型的响应式数据let name = ref('张三')//对象类型的响应式数据hobbyname: '章子怡',age: 45,sex: '男'})ref可以定义基本类型的响应式数据,也可以定义对象类型的响应式数据ref的底层还是reactive区别:1.ref创建的变量必须使用.value可以使用volar自动添加.value2.reactive重新定义一个对象hobby的时候,这个对象就失去了响应式属性。
2024-03-27 14:51:56
1770
1
原创 Vue数据监测数据原理
1.对象通过new Observer构造函数Observer通过汇总obj上面的keys属性形成一个数组这只是一层Vue中的递归会一直向下寻找数组:通过数组的操作方法修改时,但是vue上的push不是Array原型上的pushvue身上写了一个push,通过调用Array原型上的push去处理数组,然后去重新解析模板重新生成通过vue.set/$set/push因为由数据代理都可以对数组进行操作并且可以重新解析模板。
2024-03-23 16:32:42
249
原创 Vue3.0万字基础篇
1.声明自定义事件创建button设置单击事件addadd(){在父组件监听事件触发cl(触发了numchange)传参在$emit()中第二个参数可以传参组件上使用v-model:子组件值发生改变同步到父组件,父组件值发生改变同步到子组件父向子同步数据1.父组件通过v-bind向子组件传递数据,子组件通过props接收父组件传过来的值props:{counts:{2.子向父同步数据1.在父组件v-bind前添加v-model。
2024-03-23 14:22:09
1200
原创 Es6模块化和异步编程
async/await是ES8(ESMAScript2017)引入的新语法,用来简化promise异步操作,ES8之前只能通过链式.then()来解决回调地狱,但是这种方法相对于async/await来说代码冗余,可读性方面都比较差,async和await就完美的解决了该问题;getAbc()PS D:\down\桌面\Vue.js渐进式框架\ES6> node .\await.jsawait会阻塞后续代码的执行直到当前成功或失败时才会继续执行。
2024-03-21 17:31:18
1098
原创 Vue万字开发篇(一)Vant
路由的使用(总结)页面默认显示重定向定义守卫权限数组js文件用来同时设置多个页面权限components和view文件夹的区别通过路由切换的组件放到view中,不是通过vue切换的,可复用的,放到components。
2024-03-21 14:15:25
267
原创 Vue万字基础篇(二)
在封装属性时对预留的插槽上自定义属性值可以在父组件中用到传过来的值,就是作用域插槽//定义私有属性节点指令//colorcolor: {//绑定到元素上的时候立即触发bind(el) {},},},在data中声明变量color用于给自定义属性传值,在//colorcolor: {//绑定到元素上的时候立即触发},查看binding的值发现是一个对象通过binding.value可以把传过来的变量的值给自定义指令。
2024-03-20 16:04:38
2437
原创 Express创建本地服务器的使用
下面就可以通过req.query/req.body来拿到从用户端传过来的请求数据,db.query操作数据库通过res.send,把数据传回客户端。创建路由处理回调函数文件夹,以handler命名法,作为对应路由的数据处理文件。简单示例代码,用于创建简单的express服务器供学习使用。创建路由文件夹,以功能名命名js文件xxx.js。定义数据验证规则,用于验证用户发送数据是否合法。res.cc是全局res.send中间件。定义全局中间件错误验证处理中间件。创建项目入口文件app.js。
2024-03-19 14:40:36
421
原创 Vue的笔记记录-----万字基础篇
指令是Directives,是模板语法,用于辅助开发渲染页面的基本结构1.内容渲染指令v-text缺点:会把标签内原有的内容覆盖调插值语法{{}},用来解决text覆盖原有内容问题,除了可以插值还可以进行一些js里面的运算v-html可以渲染带标签的字符串到页面中2.属性绑定指令v-bind:/:为元素属性动态绑定值还可以进行一些js里面的运算3.事件绑定指令v-on事件绑定指令简写@click$.event原生的dom对象e。
2024-03-15 16:56:07
1348
空空如也
c#winformpicturebox 的形状怎样变成圆形?
2021-06-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人