- 博客(864)
- 资源 (8)
- 收藏
- 关注
原创 十进制转换2进制、4进制、5进制、6进制、12进制、16进制
从右到左依次是2⁰、2¹、2²等。二进制数转换为十进制数的方法是将。试一试32的16进制。
2025-03-20 16:53:33
25
原创 v-on=“$listeners“ 这个写法已经废弃了,如进行代替
。如果这个组件接收一个 id attribute 和一个 v-on:close 监听器,那么 $attrs 对象现在将如下所示:需要删除所有的 $listeners 用法(vue2切换vue3的时候)如何进行改造1. 直接使用 v-on 绑定具体的事件在 Vue 3 中,可以直接在子组件上使用 v-on 绑定具体的事件,而不是使用 $listeners。这种方式更明确,也更符合 Vue 3 的设计哲学。2. 使用 emits 选项声明事件Vue 3 引入了 emits 选项,用于。这有助于类
2025-03-19 20:37:18
141
原创 8、vue2迁移Vue3
可以按照官方文档进行迁移:https://v3-migration.vuejs.org/zh/利用vue-compat升级 https://github.com/vuejs/core/tree/main/packages/vue-compat。
2025-03-18 22:26:38
108
原创 vue2升级Vue3--native、对inheritAttrs作用做以解释、声明的prop属性和未声明prop的属性
在。在 Vue 2 中,.native 修饰符用于在组件的根元素上监听原生 DOM 事件,但在 Vue 3 中,这一行为发生了变化。。因此,你不再需要使用 .native 修饰符来监听原生事件。。在这种情况下,@click 会被视为自定义事件,而不是原生事件。inheritAttrs: false 的影响:如果子组件中设置了 inheritAttrs: false,则父组件传递的事件监听器不会自动绑定到子组件的根元素上。
2025-03-14 23:35:32
743
原创 vue-router编程式导航,params传参拿不到
记得this.$router.push的时候序列化一下,否则你拿到的可能是 “[object Object]”2、参数复杂–query方式传参。1、参数简单的话就这样改。
2025-03-14 17:32:30
247
原创 判断一个对象上有没有相关属性的优雅写法、no-undefined
确保属性存在且值不为 undefined,可以结合 typeof。使用 in 运算符来判断属性是否存在,这种代码写出来,eslint一直飘红。
2025-03-14 17:12:50
224
原创 vue3中的深度选择器
Vue 3 中 :deep() 的用法。:deep() 是一个伪类,用于在<style scoped> 中穿透子组件的作用域。::v-deep 是一个用于深度选择器的伪元素,用于在<style scoped> 中穿透组件的作用域,修改子组件的样式。它的语法是将选择器包裹在 :deep() 中,例如 :deep(.class)
2025-03-11 17:29:23
237
原创 6、通过husky规范commit提交信息
团队项目中可以从你的commit记录看到你的动作信息,规范提交必须按照如下格式(避免有人出现这样的提交 git commit -m “update”)
2025-03-10 22:35:30
171
原创 一个.vue文件中可以有两种写法么?选项式和组合式
虽然你可以同时使用这两种风格,但建议在单个组件中保持一致性,以避免代码风格混乱。,因为 Vue 3 的设计目标之一就是允许开发者根据需要选择合适的 API 风格来编写代码。在 Vue 3 中,
2025-03-07 19:00:27
350
原创 vue3中插槽
在Vue3中,slot-scope 已被废弃,取而代之的是新的 v-slot 语法。虽然 slot-scope 在 Vue2 中用于定义作用域插槽,但在 Vue3 中,推荐使用 v-slot 进行插槽的定义和使用。Vue 3 引入了一种更统一的插槽语法,移除了 Vue 2 中的具名插槽语法 (slot=“name”),改为使用 v-slot 指令。slot=“empty” 这个写法是 Vue 2 中的具名插槽语法,用户可能在某个父组件中通过这个语法向子组件的特定插槽传递内容。
2025-03-07 16:01:20
375
原创 可以用于promise面试的例子--其1
请问,catch方法捕捉的是“第一个promise”的失败,还是“第一个promise成功后又执行的promise”的错误?
2025-02-28 18:02:22
317
原创 有关表单autocomplete = “off“ 失效问题解决方案
autocomplete是Html5中的新属性。该属性规定输入字段是否应该启用自动完成功能。自动完成允许浏览器预测对字段的输入。当用户在字段开始键入的时候,浏览器基于之前输入过的值,应该显示出在字段中填写的选项。该属性适用于,以及下面的类型。text,search,telephone,email,password,datepickers,range以及color.该属性有两个值,on和off。on是默认的,规定启用自动完成功能。off是规定禁用自动完成功能。
2025-02-17 22:15:00
407
原创 深入理解对象的数据属性和访问器属性
对象的属性如何进行控制,比如:不期望这个属性被后续业务所更改、不期望这个属性被for in 循环出来、设置是个属性的值在设置的基础上可以+1(原原来的值是0,设置的是1,实际是2)…
2025-01-09 13:44:16
676
原创 Promise如果已经通过then,catch来拿异步结果了,是否可以通过await拿到么?
Promise如果已经通过then,catch来拿异步结果了,是否可以通过await拿到么?
2025-01-05 10:11:09
215
原创 表单输入框enter键(回车)页面刷新
代码如上:毫无科技可言,但是就是有这个神奇的现象,只要在input框中按下enter,页面整个刷新。翻译:当表单中只有一个单行文本输入字段时,用户代理应该接受该字段中的Enter作为提交表单的请求。当一个 form 元素中只有一个输入框时,在该输入框中按下回车应提交该表单。将input框的enter事件给阻止冒泡----无效。而触发了form的提交,就会导致页面刷新。绝对是触发了表单的默认提交。
2024-12-30 11:35:30
498
原创 由popover框一起的操作demo问题
当popover框弹出的时候,又有MessageBox 提示,此时关闭MessageBox 提示,popover就关闭了。将popover改为手动激活,可以解决这个问题,但是会引起另外一个问题,之前(click触发的时候),点击空白位置,可以关闭掉popover,但是现在却不可以了。可以看到手动激活的时候,是通过visible来决定其显示或者隐藏,那是不是可以监听全局的点击事件来做处理:当MessageBox 隐藏的时候,且popover显示的时候,不点击(除了触发元素之外)的时候,做关闭处理。
2024-12-20 18:31:37
414
原创 for循环和while循环区别、特点、优势
for 循环的代码更加紧凑,while 循环更加灵活,两者都可以实现迭代结构。选择使用哪一个应该根据特定问题的需求来决定。
2024-12-02 21:00:00
174
原创 promise的报错捕捉,promise的catch捕捉是否会导致看不到错误---会的
一、如下代码,这样的话报错就逮不到了:报错了,由于没有打印信息,代码也不报错,不知道任何异常。二、如下代码,这样的话代码,就会有打印信息,可以看到错误。
2024-10-27 22:20:33
252
原创 当有违法数据时,浏览器不解析,返回了undefined,导致数据不解析
我本地有json格式化工具,copy进去后,可以看到有异常提示。结果:就是这个违法数据导致的,浏览器解析不出来,没法正常解析出json,就给了个undefined。但是网络层看是有应答报文的。排查:断点到线上的源码里:1、协议回调确实没有拿到数据是个undefined 2、network里看服务确实响应了数据 3、控制台没有任何报错。现象:页面上没有看到数据。心情:莫名其妙的现象。
2024-10-25 19:35:15
321
原创 TS声明promise返回来的数据类型
解释说明(源于AI):Promise: Promise 是 JavaScript 和 TypeScript 中用于处理异步操作的对象。它代表一个尚未完成但预期将来会完成的操作的结果。Emap: Emap 是一个类型,通常在 TypeScript 中用来表示某种数据结构或对象。具体来说,它可能是一个接口、类或者类型别名,用于定义对象的结构。数组: [] 表示这是一个数组,即可以包含多个 Emap 类型的元素。。在这个示例中:我们定义了一个 Emap 接口,表示具有 id 和 name 属性的对象。
2024-10-10 23:30:00
507
原创 从一个对象上删除属性,删除一个对象上的属性
newTarget是剩余属性的收集器,它将target对象中除了propertyToRemove以外的所有属性复制到新对象newTarget中。最后,函数返回新的对象newTarget,该对象包含了原始对象target中除了propertyToRemove之外的所有属性。例如,如果调用removeProperty({a: 1, b: 2}, ‘b’),则输出为’b’,并返回一个新对象{a: 1}。这个函数的功能是从一个对象中移除指定的属性,并返回一个新的对象。
2024-09-30 17:30:00
616
原创 调试技巧 conso.trace()
同时也可以看一下一个变量在哪里做修改,具体怎么使用,可以配合watch方法的使用。console.trace() 方法用于显示当前执行的代码在堆栈中的调用路径。console 的 trace() 方法向 Web 控制台输出一个堆栈跟踪。trace是一个很好的调试错误的办法,可以查看函数在哪一些地方做了调用。
2024-09-26 00:30:00
336
原创 pointer-events,添加水印的一个小小点
场景:平平无奇一个水印图,这类功能实现:就是覆盖在整个可视div后,又加了一个div(使用定位+canvas画一个水印图充当背景),可时我好奇的是,我使用控制台,选择对应的元素时,竟然直接透过这个水印div,选到了其下的元素,很好奇。水印div设置了一个css属性:pointer-events: none;
2024-09-06 16:12:15
218
原创 错误码401、 状态码 401
HTTP 状态码 401 表示“未授权”(Unauthorized)。当服务器返回这个状态码时,通常意味着请求需要用户身份验证。具体来说,会发生以下情况:身份验证失败:用户提供的凭据(如用户名和密码)不正确,或者未提供凭据。需要身份验证:服务器可能会返回一个 WWW-Authenticate 头,指示客户端需要提供身份验证信息。访问被拒绝:即使提供了凭据,用户可能没有权限访问请求的资源。重定向到登录页面:在某些情况下,客户端可能会被重定向到登录页面,以便用户输入有效的凭据。
2024-08-29 10:42:30
3999
原创 5、计算属性的使用
其实计算属性的get和set是不关联的;get时是跟双向绑定的数据有关,当那个数据变化的时候就触发一下get,更改状态。set时就是处理当改数据变化时,进行的一些处理。App.vue:54 set时进行了触发。set时进行了触发1。
2024-08-27 22:34:49
431
原创 时区转换,将返回的时区转换为目标的时区
背景:服务返回带时区的是ISO 8601时间:2020-01-01T21:30:03+08:00。此时需要将这个时间转换为客户端的时区时间。2、转换为utc时间,utc:世界协调时,以英国格林威治时间为准(零时区时间),utc时间和北京时间相差8小时;
2024-08-26 22:40:17
385
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人