自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Vue2与Vue3的区别(vue面试常问)

vue2是采用ES5的object.definePropert()对数据进行劫持,结合发布订阅和观察者模式进行的。去掉了vue2.0中的 beforeCreate 和 created 两个阶段,同样的新增了一个 setup。vue3是采用ES6的Proxy的数据代理来对数据进行代理,修复了v2中对象和数组的属性添加修改的问题。在v2中如果同时使用v-for 和 v-if 那么v-for的优先级是高于 v-if 的。vue3中可以右多个根节点,解决了多个div嵌套的问题。vue2中组件只能有一个根节点,

2023-07-16 18:17:56 273

原创 常见的js继承方式

话不多说先上图可以看出主要分为两类(Constructor Inheritance):使用父类的构造函数来初始化子类的属性,通过call()或apply()方法在子类的构造函数中调用父类的构造函数。(Combination Inheritance):结合原型链继承和构造函数继承,既继承了父类原型上的方法,又能在子类的实例中拥有独立的属性。

2023-07-16 17:55:08 144

原创 快速了解v-if,v-for,v-show优先级

注意:在大多数情况下,应优先考虑使用v-if,因为它可以在条件为假时直接从DOM中移除元素,而v-show仅隐藏元素,可能会影响性能。这意味着,如果同时使用v-for和v-if指令,v-for的循环中的每个元素都会先经过v-if的条件判断。v-if具有次高优先级:如果v-if指令的表达式为假,相关的元素将被移除,不会进行后续的渲染过程。综上所述,当v-if和v-show同时存在于同一个元素上时,v-if的优先级高于v-show,即v-if的条件为假时,元素将被移除,无论v-show的条件如何。

2023-07-16 17:40:08 774 1

原创 Vue接入wujie项目总结

development: '//子应用开发测试域名/', // 开发/测试环境 例如:dev.baidu.com。staging: '//子应用预发环境域名/', // 预发环境 例如:staging.baidu.com。// 子应该环境域名,这里就不写公司的应用域名了,用百度做例子,到时候把自己子应用的域名写上就行了。name: '子应用名称', // 这里这个名称要和展示子应用页面设置的名称一样哦!name: '子应用名称', // 这里这个名称要和展示子应用页面设置的名称一样哦!

2023-07-16 17:19:49 791 1

原创 一分钟带你了解微前端

微前端是一种架构模式,用于构建大型前端应用程序,通过将应用程序拆分为小块(微前端应用),每个小块可以独立开发、部署和运行。它通过将整个应用程序拆分为多个独立的前端团队,每个团队负责开发和维护一个或多个微前端应用,从而实现团队间的解耦和快速迭代。微前端的实现方式有多种,包括基于路由的集成、基于Web Component的集成以及基于浏览器的集成。将开发的应用视为一个整体,每个微前端应用都有自己的技术栈、代码库和独立的部署。团队自治:每个微前端应用都有独立的开发、测试和部署流程,可以实现团队的自治和快速迭代。

2023-07-16 17:18:18 86 1

原创 简述闭包及其操作不当可能出现的问题

如果闭包引用了外部函数中的变量,而这个闭包又被长时间地保存在内存中,那么这些变量将无法被垃圾回收机制释放,从而导致内存泄漏。闭包的创建和维护涉及额外的内存开销和执行环境,可能对性能造成一定的影响,特别是在大量使用闭包、闭包链较长或存在循环引用的情况下。垃圾回收器会给所有在存储在内存中的变量加上标记,然后去掉被环境中变量所引用的变量以及环境中的变量,然后剩下的依然还有标记的变量,就是要删除的变量。闭包是指在函数内部创建的函数,两个函数发生嵌套时,内层函数访问外部函数的变量和参数,此时就会发生闭包。

2023-07-16 15:54:54 149 1

原创 浅谈原型链及原型继承

JavaScript 的原型链机制使得对象可以继承其他对象的属性与方法,这种基于原型链的继承方式被称为原型继承。当我们访问一个对象的属性或方法时,JavaScript 引擎会按照原型链的顺序在相关的对象上进行查找,直到找到或者到达原型链的顶端。这样就形成了一个链式结构,即原型链。如果在一个对象上访问一个属性或方法,JavaScript 引擎会首先查找该对象自身是否有该属性或方法,如果没有则会继续沿着该对象的原型链向上查找,直到找到或者到达原型链的顶端(Object.prototype)为止。

2023-07-16 15:29:12 94 1

原创 ES6新特性

通常情况下,当我们需要访问嵌套对象或数组的属性或方法时,需要对每个层级进行空值检查,以避免出现空指针错误,放置在对象的属性或数组的索引之前,对于存在的属性或索引进行访问,如果该属性或索引不存在,则表达式直接返回。.Promise的扩展方法:ES6对Promise对象进行了扩展,添加了许多实用的方法,如Promise.all()、Promise.race()等。.Rest参数是ES6引入的一项特性,它允许在函数定义时接收任意数量的参数,并将它们收集到一个数组中。,返回一个新的Promise。

2023-07-16 15:01:42 987 1

原创 重排和重绘

也称为布局(layout),是指浏览器根据文档的结构和样式计算元素的位置和大小,并确定页面中的元素在视觉上的呈现。当页面中的元素发生变化时(例如添加、删除、修改元素、改变元素的位置、大小、样式等),浏览器需要重新计算元素的布局,这个过程就是重排。,也称为渲染(rendering),是指根据元素最新的样式信息,将页面元素的可视部分重新绘制在屏幕上。当元素的样式发生变化但不影响其布局时(例如修改元素的颜色、背景、透明度等),浏览器只需要重新绘制元素,而不需要重新计算布局。重绘的代价相比重排来说较小。

2023-07-15 20:02:16 193 1

原创 cookie、sessionStorage、localStorage三者的区别

存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;的数据会自动的传递到服务器,服务器端也可以写。过期时间之前一直有效,即使窗口或浏览器关闭。不会自动把数据发给服务器,仅在本地保存。数据在当前浏览器窗口关闭后自动删除;虽然也有存储大小的限制,但比。数据与服务器之间的交互方式,大得多,可以达到5M或更大。

2023-07-15 19:59:02 43 1

原创 WebSocket

与传统的HTTP通信方式不同,WebSocket在建立连接后,通过服务器和客户端之间的持久连接,实现了服务器和客户端之间的实时数据传输,而不需要客户端每次都发送请求给服务器。需要注意的是,为了使用WebSocket,服务器端和客户端都需要对WebSocket进行支持和相应的编程。总结来说,WebSocket是一种提供实时、双向通信的协议,通过建立持久连接,实现客户端和服务器之间的高效、实时的数据传输,可以用于实现各种实时性要求较高的应用场景。:建立连接后,客户端和服务器可以通过发送消息进行实时的双向通信。

2023-07-15 17:57:44 68 1

原创 keep-alive 组件缓存

【怎么用】:一般用这个内置组件可以包裹住动态组件(component)或路由出口的地方,它提供的也有 include 属性可以控制缓存哪些组件名,exclude 属性控制不缓存哪些组件,它对应的也有两个钩子,分别是激活时触发的 activated 和失活时触发的 deactivated。组件缓存是指在前端开发中,将已经渲染的组件实例缓存起来,以便在需要重新使用时直接从缓存中获取,而不需要重新创建和渲染新的组件实例。组件,它可以将包裹的组件实例进行缓存,并在需要时直接获取缓存的实例。

2023-07-15 17:55:17 365 1

原创 Vue中的传值方法

在子组件中,通过$emit方法触发事件,并将数据作为参数传递给父组件,在父组件中,在子组件标签上使用v-on指令绑定事件,并在方法中接收子组件传递的数据。Vuex是Vue的状态管理库,可以用于在多个组件之间共享数据。通过定义store,可以在任何组件中访问和修改存储在store中的数据。在父组件中通过属性的方式将数据传递给子组件,在子组件中使用props属性来接收传递的值。可以采取 eventbus 实现数据传递,但是这种方式我们在开发中基本不用,多组件共享数据都是用的。v3中也可以使用ref。

2023-07-15 16:14:42 80 1

原创 Vue的生命周期

1.vue 生命周期分为个四个阶段平时在开发中一般在 created 函数中发送 ajax 请求获取数据,在 mounted 中获取挂载完毕后的真实 DOM,destroy 中销毁定时器,延时器或绑定的一些事件。

2023-07-15 15:54:10 73 1

原创 webPack热更新

Webpack 的热模块替换(Hot Module Replacement,HMR)是一项用于在开发过程中实时更新修改的代码和模块的功能。当监测到代码发生变化时,Webpack 会通过虚拟文件系统(Virtual File System)和热更新中间件(Hot Update Middleware)将修改的模块传递到浏览器中。然后,浏览器通过热模块替换运行时(Hot Module Replacement Runtime)来接受和应用这些更新,从而实现页面的实时更新。

2023-07-15 15:48:51 195 1

原创 虚拟DOM

虚拟DOM

2023-07-15 14:44:39 261 1

原创 递归原理及常见面试题

递归是一种通过调用自身来解决问题的编程方法,递归的优点是它可以将复杂问题分解为更简单的子问题,从而提供一种清晰简洁的解决方法。然而,递归的效率可能较低,并且可能占用大量的内存,因为它会在每个递归调用中存储临时状态,满足条件时返回,要避免递归进入无限循环,导致栈溢出错误。2.斐波那契数列:是一个数列,其中每个数都是前两个数之和,一般情况下,前两个数两个数是0和1。为0或1时,直接返回对应的数字。否则,递归地计算前两个数字之和,并返回结果。1.阶乘:一个正整数的各个数字相乘所得的积。,并返回斐波那契数列的第。

2023-07-11 19:12:28 168

原创 数组的几种常见排序方法以及自定义的高阶排序方法

注意,修改原型链可能会对全局范围内的所有数组实例产生影响,请根据自己的需求来处理原型链的修改。: 将数组中的所有元素连接成一个字符串,通过指定的分隔符分隔。来创建自定义排序方法。这个函数使用数组实例本身调用内置的。方法,并将传入的比较函数作为参数。: 反转数组中元素的顺序。: 合并两个或多个数组。

2023-07-11 18:49:42 228

原创 用reduce统计字符出现频率

来记录字符出现的频率。如果字符已经存在于累加器对象中,就将其对应的计数加一;否则,将字符添加到累加器对象中,并设置计数为1。最后,返回累加器对象,其中记录了每个字符出现的频率。函数接收一个字符串作为输入,然后用split将字符串拆分为字符数组。函数来迭代每个字符,并使用一个累加器对象。

2023-07-11 18:38:39 63

原创 如何用typeof判断数据类型

(报错是因为文件下了Ts的包,因为懒,就没额外创建文件)

2023-07-11 18:28:10 52

原创 十分钟带你入门Vue3----组合式API(下)

父子通信,模板引用,provide和inject

2023-06-29 23:03:59 367 1

原创 十分钟带你入门Vue3-------组合式API(上)

vue3,组合式api

2023-06-29 22:49:02 62 1

空空如也

空空如也

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

TA关注的人

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