自定义博客皮肤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)
  • 收藏
  • 关注

原创 无法从 static 上下文引用非 static 方法 ‘toModel(com.ayetongzhi.dto.ReadArticleDTO)‘

这个错误是因为你在一个静态上下文中(例如静态方法或静态代码块)尝试调用一个非静态方法。非静态方法需要一个实例来调用,而静态方法不需要实例,因此在静态方法中不能直接调用非静态方法。

2024-06-03 05:21:13 113

原创 pageHelper插件返回的Page对象为什么可以使用增强for循环

Page 对象实际上是一个集合,其中包含了查询结果的所有数据。在 MyBatis 中,当使用分页插件(如 PageHelper)时,查询结果通常会被封装到 Page 对象中。虽然 Page 是一个集合,但它不是标准的 Java 集合类(如 List),而是一个包含了查询结果以及分页信息的对象。因此,尽管 Page 对象不是标准的集合类,但它可能实现了 Iterable 接口,以便能够使用增强 for 循环进行遍历。这样就可以通过增强 for 循环逐个获取查询结果中的对象,就像遍历普通集合一样。

2024-05-23 16:40:48 230

原创 E和T 在泛型编程中的区别是什么?

在Java中,E和T是泛型编程中的类型参数。它们是占位符,用于在创建类或调用方法时指定具体的类型。在上面的success方法中,E是数据类型参数,Result对象将持有这个类型的数据。方法返回一个Result,其中E是传递给它的数据的类型。E:通常代表"Element"(元素)。它常用于存储元素的集合或数据结构中,如列表(List)、集合(Set)或队列(Queue)。T:代表"Type"(类型)。它是一个更通用的占位符,可以用于任何泛型类或方法中。

2024-05-23 15:03:19 257

原创 TypeScipt 联合类型 | 号的使用

联合类型有两种使用方法:1. 一种类型中多个可能的值。2. 具有多种不同的类型中的一种。

2024-05-06 22:35:31 442

原创 No known conditions for “./lib/locale/lang/zh-cn“ specifier in “element-plus“ package [plugin vite:d

Error: Failed to scan for dependencies from entries: D:/CodeV3/person-tool/index.html X [ERROR] No known conditions for "./lib/locale/lang/zh-cn" specifier in "element-plus" package [plugin vite:dep-scan]

2024-05-06 09:05:24 467

原创 通过closest实现clickoutside关闭弹窗

Element.**closest**() 方法用来获取:匹配特定选择器且离当前元素最近的祖先元素(也可以是当前元素本身)。如果匹配不到,则返回 null。

2024-04-28 08:34:20 249

原创 一文带你彻底了解offsetTop&offsetParent

offsetTop为只读属性,它返回当前元素相对于其元素的顶部内边距的距离。上面提到的内边距,即不包括元素边框的长度。我们再来看下是一个只读属性,返回一个指向最近的(指包含层级上的最近)包含该元素的定位元素或者最近的 table, td, th, body 元素。当元素的 style.display 设置为 “none” 时,offsetParent 返回 null。offsetParent 很有用,因为 offsetTop 和 offsetLeft 都是相对于其内边距边界的。

2024-04-28 08:32:47 662

原创 vue页面中怎么显示多个空格-从普通空格到非断行空格与v-html的使用

v-html 的内容直接作为普通 HTML 插入—— Vue 模板语法是不会被解析的。在单文件组件,scoped 样式将不会作用于 v-html 里的内容,因为 HTML 内容不会被 Vue 的模板编译器解析。在你的站点上动态渲染任意的 HTML 是非常危险的,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要将用户提供的内容作为插值。产生的原因是因为在浏览器进行解析的时候, 会将多个空格合并成分成一个空格。可能跟使用vue2有关吧,上述的演示的代码使用的是vue3。

2024-04-27 15:41:31 933

原创 Uncaught TypeError: Carnot read properties of null (reading ‘disabled‘) at VueComponent.hide

Uncaught TypeError: Carnot read properties of null (reading ‘disabled‘) at VueComponent.hide

2024-04-27 14:24:59 217

原创 float实现文字环绕效果

1. float实现文字环绕效果

2024-04-17 21:44:02 236

原创 复制粘贴是怎么实现的

因为浏览器的差异,上面的代码并没能在浏览器中成功的实现复制操作。但是将tArea.remove()方法注掉,在控制台手动调用document.execCommand(‘copy’) 是可以成功复制的。在上面的代码中,command 和 select 是自定义的函数。

2023-09-06 22:39:10 1050

原创 ?? 和 || 运算符的区别

用于处理空值(null 或 undefined)的情况。如果左侧的操作数为空(null 或 undefined),则返回右侧的操作数。如果左侧的操作数非空(非 null 或非 undefined),则返回左侧的操作数。用于处理 “假值”(falsy values)的情况。除了处理空值外,它还处理其他被视为 “假值” 的情况,如空字符串、0、false、NaN。如果左侧的操作数为 “假值”,则返回右侧的操作数;只处理 null 和 undefined 的情况,而 || 处理更广泛的 “假值” 情况。

2023-09-05 22:30:23 2430

原创 不改变数组本身的几个方法,操作数组体验加1

JavaScript中操作数组方法中会改变原数组的方法:reverse(),sort(),splice(),所对应的不改变原数组,返回操作后数组的方法。

2023-09-03 22:19:34 182

原创 window.getSelection 实现的原理是什么

是浏览器提供的一个内置对象,它提供了一系列方法和属性来操作和获取选区的信息。通过选区对象,你可以获取选区的起始位置和结束位置、选区包含的文本内容等。如果用户没有选择文本或选择了其他内容(如图片、表格等),则返回的选区对象可能为空或不包含文本内容。它返回一个 Selection 对象,该对象包含了当前选择文本的相关信息。当用户通过鼠标或键盘进行文本选择时,浏览器会创建一个选区对象来表示所选内容的范围和位置。方法可以获取到选区对象,然后通过选区对象的方法和属性来访问和操作选区的内容和位置信息。

2023-07-17 11:13:48 413

原创 TypeScript 中的 type 关键字有什么用?

定义基本类型的别名:在上述示例中,MyNumber 和 MyString 分别是 number 和 string 的别名。定义复合类型的别名:x : number;y : number;在上述示例中,Point 是一个包含 x 和 y 属性的对象类型,Coordinate 是一个包含两个元素的元组类型。定义函数类型的别名:在上述示例中,MyFunc 是一个接受两个 number 类型参数并返回 number 类型的函数类型。

2023-06-11 08:15:09 1060

原创 作用域及作用域链

当查找变量时,首先会在当前执行上下文的变量对象中进行查找,如果查找不到,会向上一级的执行上下文的变量对象中进行查找,如果没有找到,会一直向上进行查找直至全局作用域中的全局变量对象。2. let 定义的变量,有块的概念,只能在作用域内访问,不能跨块跨函数访问,不存在变量提升,不2可以重复声明,在声明前使用会报错,存在暂时性死区。3. const 定义的变量,必须初始化,存正在块的概念,赋值后不能更改,如果赋值是引用类型的值,引用的值本身可以发生改变。2)函数作用域,函数内部的变量和函数只能在函数内部访问。

2023-05-24 12:17:36 721

原创 执行上下文和执行栈

变量对象是与执行上下文相关的数据作用域,存储了执行上下文中的变量和函数声明。变量对象是一个抽象概念,当在全局执行上下文中时,变量对象就是全局对象。执行上下文指当前环境下的变量,函数声明,作用域链和this对象等信息。2.函数执行上下文,每当一个函数创建时,就会创建一个新的执行上下文。1.全局执行上下文,(全局在浏览器环境下指的是window)每个上下文都有三个重要属性:变量对象,作用域链,this。每执行一个函数,都会创建一个新的执行上下文。赋值变量,函数的引用,执行其他代码。单线程,只在主线程上执行。

2023-05-24 08:28:42 390

原创 在不用$set和deep的情况,如何对数组中的某一项进行监听

需要注意的是,在使用 watchEffect 监听数组中某一项的变化时,不能直接访问数组本身,而是要访问数组的某一项才能触发监听函数的执行。总结一下,使用 Vue 3.x 中的 reactive 函数和 watchEffect 函数可以方便地实现对数组中某一项的监听,而不需要使用 $set 和 deep。这里的第一个参数是一个函数,该函数中访问了要监听的数组中的某一项,当这一项发生变化时,watchEffect 函数会自动执行该函数,并打印出最新的值。1.定义一个响应式对象,将数组转为响应式对象。

2023-05-16 22:20:50 146

原创 Vue 的动态组件

vue中的动态组件指的是在渲染组件时,根据数据和用户操作动态的切换和渲染不同的组件,使用动态组件可以提高组件的复用性和灵活性,根据不同的应用场景选择不同的组件。

2023-04-21 23:31:25 258

原创 异步组件的怎么优化页面加载速度

异步组件如何优化加载速度

2023-04-21 20:02:45 155

原创 你如何理解 Vue.js 中的 Mixins?你在项目中如何使用 Mixins?

Vue.js 中的 Mixins 是一种代码复用机制,可以让多个组件之间共享相同的逻辑和方法。Mixins 允许我们将多个组件中相似的代码封装到一个可复用的模块中,从而提高代码的可维护性和可读性。在 Vue.js 中,我们可以通过定义一个包含复用逻辑和方法的 Mixin 对象,然后在组件中通过 mixins 选项来引入该对象,从而将 Mixin 中的方法和逻辑注入到组件中。在组件中使用 Mixin 的方法时,它们会被合并到组件中的选项中,从而覆盖掉组件中的同名选项。

2023-04-16 20:00:05 177

原创 什么是 MVVM 模式?Vue.js 采用了什么思想实现?

Vue 中的 MVVM 模型通过数据绑定系统实现了视图和数据模型之间的自动同步,即当数据模型发生变化时,视图会自动更新,而当用户与视图交互时,视图模型会自动更新数据模型,从而实现了数据和视图的双向绑定。

2023-04-16 13:58:41 647

原创 Vue.observable 是什么

Vue.observable 是 Vue.js 提供的一个 API,它可以将一个普通的 JavaScript 对象转换为响应式对象。通过使用 Vue.observable,可以在任何地方创建一个响应式对象,而不仅仅是在 Vue 实例中使用。它在 Vue.js 的响应式系统中扮演了很重要的角色,可以用于管理状态、状态共享等场景。

2023-04-09 16:36:03 514

原创 Vue实例在挂载过程中会发生什么

Vue实例在挂载过程中会依次执行以下步骤:初始化:Vue会初始化实例的生命周期、事件、数据观测、计算属性等等。模板编译:Vue会对模板进行编译,将模板转化为渲染函数。挂载:Vue将生成的渲染函数渲染成真实的DOM,并且将其挂载到页面上。更新:一旦实例被挂载到页面上,当数据发生变化时,Vue会自动更新视图。

2023-04-09 15:27:22 613

原创 父子组件生命周期钩子函数的执行顺序

在单一的组件中,钩子的执行顺序父子组件中,钩子的执行顺序

2023-04-04 21:17:34 76

原创 Vuex 和 localStorage 的区别

Vuex 和 localStorage 的区别

2023-03-31 22:03:36 444

原创 Vue 的生命周期

Vue 的生命周期

2023-03-26 23:39:34 173 1

原创 ReferenceError 和 TypeError的区别

ReferenceError 和 TypeError的区别

2023-03-15 20:18:45 113

原创 什么是词法作用域

词法作用域

2023-03-15 20:06:07 183

原创 JS 单线程之宏任务与微任务

在任务队列中先执行微任务,再执行宏任务。在执行微任务的过程中,创建了新的微任务,仍然会先执行微任务,当所有的微任务执行完,再执行宏任务。在执行宏任务的过程中,创建了新的微任务,结束当前宏任务后,会先去执行微任务,微任务执行完,再去执行剩下的宏任务。以上就构成了事件循环。

2023-03-10 00:48:53 420

原创 JS 浅拷贝与深拷贝

浅拷贝是创建一个新的对象,复制原对象所有的基本类型的值,引用类型的值,复制的是其引用地址。当修改复制后的对象中引用类型数据的值,会对原来的对象产生影响。深拷贝则是在复制一个对象时,会递归地复制其所有的属性和嵌套对象,直到完全复制了整个对象的所有引用和属性。当修改复制后的对象时,它不会影响原始对象。

2023-03-08 00:23:49 72

原创 扩展运算符对对象的拷贝是深拷贝还是浅拷贝

扩展运算符是浅拷贝

2023-03-05 22:41:59 1833

原创 splice 和 slice 的区别

splice 方法用于增、删、改,而 slice 方法用于提取子数组。

2023-02-24 01:10:05 149

原创 掌握JS数组去重方法,处理重复数据能力加1

1. Set 数据结构与解构赋值 2. Set 数据结构与 Array.from 3. indexOf() 和 filter 4. includes 5. reduce 和 对象属性 6. 相邻元素去重

2023-02-23 00:22:41 173

原创 箭头函数和普通函数有什么区别

普通函数的 this 指向可以改变,箭头函数的 this 指向 不能被改变,指向其定义时所在的对象。普通函数可以作为构造函数,箭头函数不能作为构造函数,使用 new 命令会抛出错误。箭头函数体内没有 arguments 对象,如果要用,需要使用 rest 参数代替。普通函数有原型对象 Function.prototype,箭头函数没有原型对象。

2023-02-21 23:58:34 83

原创 flex 布局 子元素不设置宽高,高度撑满父元素的问题

align-items: stretch子元素不设置宽高,其高度与父元素高度相同

2023-02-12 22:54:40 11964

原创 扩展运算符的一些常用场景

扩展运算符的一些常用场景,合并数组,合并对象,结构数组,字符串转数组

2023-02-07 23:15:08 122

原创 JavaScript 中的作用域

JavaScript 中的作用域

2023-02-07 00:24:15 63

原创 JavaScript 中的数据类型

基本类型保存在栈中,引用类型保存在堆中。基本类型是按值进行访问的,引用数据类型访问的是内存地址。基本类型复制的是其值,引用类型复制是对象的引用地址。

2023-02-06 08:00:00 58

原创 JS判断数据类型 typeof instanceof Object.prototype.toString.call 有什么区别

typeof 适合用来判断除了null 以外的基本类型的值,返回一个表示该数据类型的字符串。instanceof 返回一个布尔值,用于检测构造函数的 prototype 属性是出现在某个对象的原型链上。也就可以检测该实例对象是由哪类的构造函数所创建,进而判断实例的类型。Array.prototype.toString.call()返回一个字符串,字符串的第一个字段为 object,第二个字段为值的类型。

2023-02-05 21:49:26 52

空空如也

空空如也

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

TA关注的人

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