- 博客(255)
- 收藏
- 关注

原创 微信支付 h5实现微信支付功能 适用于VUE和UNIAPP
拉起微信支付的前提首先要微信登录,使用返回地址栏中的code,传给后端接口查出openId
2024-01-06 09:51:00
9739
3

原创 闭包 闭包理解 闭包的应用实例
getName获取Person函数中的name,setName设置Person函数中的name。利用闭包原理封装对象缓存局部变量name的值,实现对name的get,set。形成闭包的条件:一个函数访问外部的变量就形成了闭包。(1)可以通过闭包函数形成独立实例的变量。(2)不会造成全局污染。
2023-12-22 11:33:23
552
原创 Vue3实现锚点定位
由于引用组件实例,组件未挂载完成就获取ref,会出现此ref还未完全获取到组件撑开区域的高度,就会出现锚点滚动定位位置错乱的问题,修改ref写法,(el)=> {anchorRefs[item.path] = el }使用shallowRef可以实现浅层响应式引用组件实例,当对象的深层属性发生变化时不会触发视图更新,提高了性能。
2025-04-01 12:04:04
328
1
原创 vite打包发布pc端报错
所以当在运行项目页面的情况下,执行了项目打包上传新的文件,这个时候上传的文件名称就会发生变化了;所以当前页面由于是打包之前就打开着的,所以当前文件使用的是之前的文件名称进行的加载,当按照旧文件名称加载新的文件名称的时候由于找不到旧文件的名称就会报错。当第一次加载文件报错后,再次按照原来的文件名称搜索加载的时候,由于是动态js文件名,是随时都会变化的,vite打包项目,由于是加载的动态js,
2025-03-11 14:22:37
258
原创 栈溢出,内存溢出
死循环就会导致cpu进去了出不来了,反复对相同指令不断操作,因此会导致主线程长期被占用,包括js语言,css渲染,html解析,包括布局树的生成都是在主线程之内进行操作的,所以说浏览器有个渲染主线程这个渲染主线程会做很多的事情,由于忙着去执行js代码很多其他事情就执行不了了,就会看到浏览器一直在那转圈圈,这个时候点任何按钮都是没有响应的去复制页面上的东西也不会有反应,就是页面点不动了。//这个是块级作用域,进入作用域变量创建,离开作用域变量会被销毁,也就是内存进入了,出去消失了这样的循环的。
2025-03-11 13:58:45
252
原创 TS中ReturnType的使用
最后将定义的config放入函数中ReturnType可以获取里面DefineNuxtConfig函数的返回类型,是一个泛型类型。
2025-02-27 11:41:35
111
原创 Expected a JavaScript module script but the server responded with a MIME type of “text/html“
由于vite是动态加载的js,js文件名称不是固定不变的是变化的,所以按照旧文件名称查找新文件名称就会报这个错误。,这个时候之前未打包前的项目若处于打开网页的状态,在不执行刷新页面的前提下,执行跳转路由就会按照。监听项目上传新的文件之后,自动更新代码,或弹窗提示更新代码。打包之前的项目中的文件名称(旧文件名称)查找新的文件。
2024-10-28 11:46:31
1180
原创 Typescript中的Required,Partial,Pick,Omit辅助类型
4.使用Pick只保留指定属性允许使用,这里只保留name和age允许使用。5.使用Omit将指定属性抽离出来,只允许未抽离的可使用。3.使用Partial将属性从必填转为非必填。2.使用Required将属性转为必填。以上定义的类型里面的属性都是非必填。
2024-10-18 17:01:32
335
原创 vue3中使用element-plus的组件,编辑器检查警告爆红找不到名称相关的element组件
在tsconfig.json中,增加标红框文件配置,目的就是将根目录下包含.d.ts的文件中的匹配项,应用于整个项目的匹配项检查,去除代码检查爆红警告。按照以上配置完之后,当在代码中使用elementplus相关组件的时候,会在根目录下自动生成。在vite.config.js中配置。
2024-10-18 09:49:40
729
原创 h5实现签名功能
计算弹窗中的canvas距离顶部的距离,顶部距离又会受到,浏览器滚动的影响需要监听滚动事件。x轴只需要获取鼠标移入点的位置offsetX的距离即可。
2024-03-01 13:23:56
1202
原创 (0 , _store_reducers_user__WEBPACK_IMPORTED_MODULE_3__.setMenu) is not a functionTypeError: (0 , _s
改为这样即可将reducer改为reducers即可。使用reducer设置状态管理时报错解决。
2024-02-16 16:50:47
387
原创 微信小程序 获取地址信息(uniapp)
参考地址:微信小程序JavaScript SDK | 腾讯位置服务<script> // 引入SDK核心类,js文件根据自己业务,位置可自行放置 var QQMapWX = require('../../js/uploadImg/qqmap-wx-jssdk.js'); export default { data(){ return{ qqmapsdk:'' } .
2024-01-06 11:40:07
1663
4
原创 微信小程序 分享按钮 监听用户分享成功
1.用户触发分享按钮之后,修改变量状态shareMd为true。4.监听到生命周期状态已经变为true了,提示分享成功。3.小程序页面显示时会触发onShow生命周期。2.分享成功返回重新打开进入小程序分享页面。
2024-01-05 11:51:15
2443
原创 arguments arguments的认识 将arguments伪数组转为真数组
arguments为伪数组,伪书组就是不能使用数组的方法arguments这个值等于函数括号内的参数,以伪数组的方式体现。
2024-01-04 21:10:25
498
原创 apply与call
它们共同的含义:都是一个对象劫持另一个对象的方法,继承另一个对象的属性相同点:都可以改变this的指向不同点:他们的参数call可以写多个参数apply只能有两个参数(所以第二个参数可以放置数组或类数组arguments)他们存在的意义实现多重继承方法的属性都是一个对象劫持另一个对象的方法,继承另一个对象的属性的举例子:function first(name,age){ this.name=name; this.age=age;}function.
2024-01-04 20:51:14
567
原创 js 实现自动滚动 缓慢滚动元素到可视区域
在页面进行滚动元素到可视区域的时候,一般都使用跳转href加#的方式进行锚点定位,但是有缺陷(1)只适用于整体网页的锚点定位,不能对于某个区域的进行定位滚动(2)在框架中如果路由使用hash则再使用锚点定位(#)就不起作用了
2023-12-29 22:45:12
2181
原创 计算 日期增加小时转时间戳
例子:计算2023-05-09 加48小时首先明确上方是使用getTime转成的时间戳,getTime是精确到毫秒的,计算48小时转为秒48*3600转为毫秒需要再加上三个048*3600000。
2023-12-29 09:34:34
759
原创 一题认识this和arguments
这里arguments[0]就是,传入的第一个参数f1函数,arguments[0]()就是将f1函数声明执行f1函数,就是arguments调用f1函数,自然f1函数中的this就是arguments,arguments.length就是4。this指向原则:this指向默认为window(严格模式下除外),当函数或对象被调用的时候,this隐式绑定调用者。这里所存在于f2函数中,obj.f2调用的时候参数传入了(f1,1,2,3),获取的就是[f1,1,2,3]所以最上方f1()函数执行的时候,
2023-12-22 09:44:54
453
原创 canvas基本绘制对象
/x0开始点的x轴(沿x轴逆向渐变),开始点的y轴(沿y轴逆向渐变),结束点的x轴(沿x轴顺向渐变),结束点的y轴(沿y轴顺向渐变)ctx.arc(300,300,100,0,6);//x,y,半径,起始角度,弧长(Math.PI*2表示圆,Math.PI是半圆),true或false(true是顺时针,false是逆时针)//设置空心字提(text,x,y,maxWidth)//设置实心字体(text,x,y,maxWidth)//ctx.stroke();//ctx.fill();...
2023-12-15 22:00:31
807
原创 函数柯里化 剖析
/args是获取的第一次参数的值// 上面的args写法等同于下方的for循环i++) {// }//innerArgs是获取 calc(参数)=>结果再一次调用的(参数),就是调用再调用后续括号的参数//拼接两个数组//方法//给inner加个方法},0)//返回函数其基本原理就类似 for循环遍历原数组,根据start和end的值再复制一份到新数组并返回。
2023-12-15 16:21:17
472
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人