- 博客(229)
- 收藏
- 关注
原创 Vue中将pdf文件转为图片
平时开发中,我们经常遇到的场景应该是调用后端接口返回给前端pdf格式的文件流,然后我们可以通过URL.createObjectURL的方式转为object url临时路径然后可以通过window.open的方式来打开一个新的浏览器页签来进行预览,效果如下图:但有时候这样满足不了的需求,它不想这样预览,不想要那么多乱七八糟的东西,我只要PDF文件中的内容,然后在项目页面中类似个弹窗似的直接展示pdf文件的内容。所以,这篇就来说一下,我们可以将pdf文件转为图片来进行展示。
2025-04-01 18:56:43
9
原创 uniapp选择文件使用formData格式提交数据
在vue项目中,我们有个文件,和一些其他字段数据需要提交的时候,我们都是使用axios 设置请求头中的Content-Type: multipart/form-data,然后new FormData的方式来进行提交。但是uniapp使用uni.request的方式就不行了..
2025-03-30 21:22:00
125
原创 java中常用判空方法、两个值是否相等方法
java中感觉判空的一些方法太多了,感觉有点儿乱糟糟的,所以这篇就简单总结一下我在项目中常用的一些方法吧,并不全哈,只是自己常用的,平时也够用。
2025-03-03 17:14:20
241
原创 uniapp图像转换(获取本地选取或拍照的图片的base64、Blob、图像和base64的转换)
uniapp中提供了uni.chooseImage api 这个是从本地相册选择图片或使用相机拍照。这个api无论是在H5还是app还是小程序等都是适用的,回调函数中我们能拿到图片的路径列表,我们现在要把改路径转为base64编码。但如果不是小程序的话 上述代码就会getFileSystemManager报错, 所以我上面使用了#ifdef MP 条件编译。如果是H5、或者app端的话,我这里使用的uni Dcloud插件市场的一个插件。
2025-02-19 09:29:39
557
原创 uniapp调用微信js-sdk获取当前地理位置信息(前后端)
uniapp官网提供了uni.getLocation方法,但是基本上不能使用,官方也有提出:然后我们接着官网往下划,可以看到有注意事项:因为我这里使用的是H5 微信公众号,所以就来介绍一下微信公众号中调用微信的JS-SDK来获取当前地理位置信息。uni-app 中为兼容微信小程序生态存在全局的 wx 对象,而微信 JS-SDK 也是注册全局的 wx 对象,为避免混淆,可以将微信 JS-SDK 中的 wx 对象改名先来说下整体的实现吧。
2025-01-26 14:11:42
230
原创 uniapp使用uni.navigateBack返回页面时携带参数到上个页面
我们平时开发中也经常遇到这种场景,跳转一个页面会进行一些操作,操作完成后再返回上个页面同时要携带着一些参数。其实也很简单,也来记录一下吧。假设从A页面 跳转到 B页面。
2025-01-24 11:20:48
1524
原创 springboot中DTO、VO、Entity相互转换
这个很简单,其实就是标识前端传递的参数字段是什么,就是允许我们后端接受的参数字段和前端传递的字段可以不一致,如果不一致我们后端就可以使用@JsonProperty进行映射。同样的我在VO中使用@JSONField注解,上面的例子是把DTO转为VO,VO中的@JSONField对应的就是DTO中的字段。在我们平时开发中,dto、vo、entity之间的相互转换是很频繁的操作,这篇就简单记录一下我在平时开发中转换的方法。VO:平时开发中,一般会定义VO(view object)来封装返回给前端的数据。
2025-01-21 15:22:23
694
原创 uniapp(小程序、app、微信公众号、H5)预览下载文件(pdf)
在uniapp开发小程序或者H5中,都可以使用以下方式预览文件之前其实写过一篇,就是使用uniapp官网提供文件下载、文件保存、文件打开的API,感兴趣也可以去看下。
2025-01-17 17:30:40
620
原创 Github加速访问
直接全选复制到本地hosts文件中即可(另起一行)我一般是修改本地hosts文件。然后我们能看到这样子的页面。往下划,找到第3个,打开。可以按照它上面的方法。
2025-01-17 13:54:30
385
原创 uniapp实现“到这儿去”、拨打电话功能
在 UniApp 中实现“到这儿去”的功能,即调起地图导航至指定位置,对于不同的平台(小程序、H5、App)有不同的处理方式。下面将简单介绍如何在这些平台上实现该功能,并讨论位置信息的获取。后面需求会用到,先来找一些相关资料,并不一定很准确,但也来记录一下(本人还未使用哦,但可以做个参考)
2025-01-15 16:53:58
399
原创 uniapp实现微信公众号网页(H5)授权登陆获取用户信息(前端+后端)
这篇说一下使用uniapp开发实现微信公众号网页授权、以及获取用户信息的前端、后端的实现。开始之前呢,先提一嘴uniapp开发微信小程序的微信登陆,之前也写过一篇,uniapp微信小程序登陆的,大家感兴趣可以去了解一下,因为这uniapp、一会儿小程序、一会儿公众号、一会儿app、一会儿h5的搞得有点儿乱糟糟的。
2025-01-12 20:44:04
992
原创 uniapp页面高度设置(铺满可视区域、顶部状态栏高度、底部导航栏高度)
这里说几种在uniapp开发中,关于页面设置高度的几种情况。宽度就不说了哈,宽度设置百分比都会生效。首先我们要知道平时开发中,如果说没在uniapp做特殊处理,即正常情况下,所有的页面(.vue文件)中都是没有高度的(和vue一样),也就是说给最外层的的view标签设置高度为100%是没啥作用的,只要没内容高度依然是0。
2025-01-10 11:36:30
1458
原创 fastjson中的序列化与反序列化
fastjson中的除了上面的之外还有JSONObject.toJSONString()和JSONObject.parseObject()方法,也可以转为字符串,但使用场景可能有所不同。:JSON.toJSONString可以直接序列化任意Java对象(包括自定义类),而 JSONObject.toJSONString仅适用于 JSONObject类型的对象。在实际开发中,如果只是简单的对象到JSON字符串的转换,JSONObject.toJSONString 通常是更通用的选择。
2025-01-03 16:33:13
341
原创 springboot实现图片上传、下载功能
返回的这个url其实就是后端编写好的一个接口,返回的是个文件流,前端直接将完整的请求的后端的路径放在img标签的src上,其实就相当于发送了请求,所以这里注意这种方式回显要求后端将改接口放在白名单中(即该接口不需要token校验),否则前端就不能像正常路径一样直接放在img的src上回显,就要像普通的接口一样调用接口,然后通过URL.createObjectURL(new Blob(res))的方式转为路径再复制给src。可能算是个简单版的,我这里图片上传都存在当前项目的根目录resource下了。
2024-12-25 17:21:36
587
原创 IDEA使用Alt + Enter快捷键自动接受返回值一直有final修饰的问题处理
我们可以看到 Declare final f的下方有个下划线,表明此处有快捷操作,我们在接受到返回值时,使用Alt + f键,果然取消掉了,且以后也不会再出现了!那如果我们需要改回来的话,还是一样的操作,在接收到返回值后,我们同样的时候Alt + f,这样我们可以随意的切换。看着真烦人呢,我们会发现在接受到返回值是上方有个 Declare final选项,如下。我们手动给它取消确实能去掉当前的final,但是下次还是会有!
2024-12-23 15:09:13
611
原创 uniapp生成二维码,以及扫码进入另一个小程序某个页面(前后端)
这篇说一下uniapp中生成二维码的操作,以及运行到小程序生成小程序码用于跳转到其他小程序的功能实现。我这里生成二维码的链接分为两种,一种是网页链接即h5页面,另一种是小程序链接(应该是小程序中的某个页面)。所以在uniapp开发中,需要判断一下是哪种链接,因为每种生成二维码的方式是不一样的。如果是网页链接,那么前端直接使用该链接直接生成二维码就好了。这里使用一下这个库即可。如果是小程序链接,其实应该是对应要跳转的小程序的某个页面路径。然后服务端去调用微信官方提供的接口来生成二维码。
2024-12-15 13:58:57
716
原创 Vue常用加密方式
消息摘要是从原始数据中通过特定算法计算出的一个固定长度的字符串,这个过程通常被称为哈希函数或散列函数。固定长度:无论输入的数据有多大,输出的消息摘要都有固定的长度。唯一性:理想情况下,不同的输入应该产生不同的消息摘要,虽然在现实中由于哈希碰撞的存在,这并不总是可能的。不可逆性:从消息摘要不能反推出原始数据。高效性:计算消息摘要的过程应该是快速且高效的。
2024-11-13 10:53:48
285
1
原创 小程序中引入下载到本地的iconfont字体图标加载不出来问题解决
会下载一个这样的压缩包,我们解压,选择里面的stylesheet.css文件打开,然后复制里面所有的内容,然后把原来的字体包中的iconfont.css中的引入文件 @font-face全部替换即可。一般我们的字体包都在一个文件夹中,其中包含了 .ttf、.woff、.woff2这样的文件,我们点击add fonts选择 .ttf的文件即可。然后这样完成之后,之前的 .ttf、.woff、.woff2都不需要了,就保留咱们这个css文件即可。
2024-11-07 11:19:42
735
原创 使用浏览器原生API实现录屏功能
本地开发环境中使用正常没问题,但是在生产环境中可能会报错,原因是因为navigator.mediaDevices为undefined了,其实除了navigator.mediaDevices,navigator.clipboard.writeText(‘复制的文本’) 这个复制到剪切板的API也是同样的问题。出现这些问题的原因是浏览器这些自带的一些API都有局限性,可能是为了安全考虑,只有在。好早之前写了个小deme,本来都忘了,现在无意中又翻出来了,所以也来记录一下吧!或者直接先不用图片都可以。
2024-10-10 15:01:54
286
原创 requestAnimationFrame
这是浏览器的刷新频率。而requestAnimationFrame不是由js、代码决定的,它不会受代码影响,而是由系统决定的。它的使用也很简单,跟setTimeout差不多,不同的requestAnimationFrame不需要传递第二个参数(时间),直接传递一个回调即可。:由于requestAnimationFrame会在浏览器的下一次重绘时执行回调函数,可以减少不必要的计算,从而节省电量。可能是我这个工具的原因,录出来不太连续,但实际上是都是很流畅的,大家直接拷贝代码可以试一下。
2024-09-22 13:44:15
233
原创 Vue3.5新特性
vue3.5发布好多天了,所以尽快来看一下新出了哪些特性。在3.5中,Vue的响应式系统经历了另一次重大重构,实现了更好的性能并显著提高了内存使用率(),而行为没有变化。此重构还解决了在SSR期间因挂起计算而导致的过时计算值和内存问题。此外,3.5还优化了大型深度响应式数组的响应性跟踪,在某些情况下使此类操作的速度提高了10倍。这里只介绍平时经常会有的东西、经常会写的东西、实用的东西哈。
2024-09-11 22:03:03
634
原创 通过MessageChannel实现一个深拷贝
深拷贝在前端领域已经是个老生常谈的话题了,说起深拷贝相信大多数人第一反应就是通过JSON,其他的就是可以递归手写一个深拷贝,再就是使用第三方库已经写好的深拷贝,不再重复造轮子,例如:lodash。很早之前也写过关于深拷贝的博文(我们可以看到,这两个对象的属性完全一致,但并不是一个引用,这不就是我们要的深拷贝。上面都是一些说明、描述官网等信息,感兴趣的伙伴可以去了解一下。接口允许我们创建一个新的消息通道,并通过它的两个。) 通过JSON进行深拷贝的一些缺陷等。callback回调。
2024-08-25 21:47:34
347
原创 npm pack使用
当我们需要把某些模块给其他小伙伴或者搭建npm私服时,需要将node_modules 的所有模块生成N个packname-version.tgz文件,方便其他人员使用npm install packname-version.tgz命令安装。大家可以看到在根目录自动创建了packages目录 并自动将node_modules中的依赖包打成.tgz的包并移动到packages中。如果不提供任何参数运行。简单说就是进入需要打成 .tgz 的包目录中执行npm pack命令,就可生成该包对应的.tgz压缩文件。
2024-08-25 20:51:49
1222
原创 vue动态绑定事件、传递参数
vue动态传递不确定个数的参数到子组件这个还是经常用的,动态绑定不确定个数的事件就不太常用了,写这篇也是因为自己没有好好看官方文档,所以来记录一下。下面的代码示例就采用vue2了,vue3也是一样的。相信大家对vue的父传子已经很熟悉了。假设子组件接受下面三个参数:那我们父组件可以单独传递:也可以一块儿通过v-bind直接传递整个对象,相当于将对象中的进行结构全部传递,官网也有写:https://cn.vuejs.org/api/built-in-directives.html#v-bind
2024-08-15 17:41:00
309
原创 monaco-editor自定义定制/扩展其他语言
目前monaco-editor内置有61种语言,但是只对css、html、json、typescript 支持的,功能也比较全。我们要是使用其他的语言比如javascript、java、sql等可能会报错,使用上面内置的四种语言之外的其他语言就需要我们自己定制、扩展了。如果有更多的可以自行扩展,monaco-editor中也都有对应语言的提示的自带的包,也可以自己编写逻辑哈。但是没考虑到语言的问题。我这边写了最常用的javascript、java、sql基础扩展支持。
2024-08-12 13:00:59
863
原创 webpack配置
一直用webpack打包用了好几年了,但其实只了解大概的配置意思,并没有仔细、深入去学习。那闲来无聊,就简单的浅浅学了一下webpack,这篇也来记录一下。本质上,是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个,然后将你项目中所需的每一个模块组合成一个或多个bundles,它们均为静态资源,用于展示你的内容。webpack打包的内容主要是要用webpack首先需要安装一下吧,webpack是基于。
2024-08-10 16:33:43
275
原创 Vue引入使用iconfont字体图标
由于element-ui或element-plus提供的图标有时候并不能满足日常需求,所以这篇介绍一下前端引入阿里巴巴矢量图标库使用,其实不止vue哈,html也是同样的道理。
2024-08-08 10:13:45
829
原创 低代码、零代码、拖拉拽
我们会发现这低代码平台的模样大致的布局都大差不差,就是左中右布局,左边是一些供拖拽(点击)的基础组件,中间为画板、右边为属性配置,当然具体还得具体看,但整体大致上都是这样的布局。这篇说下关于实现低代码、零代码自己的思路、想法吧。最后再给大家推荐一下自己做的两个低代码、零代码项目,一个是快速生成大屏的、另一个是希望快速生成h5页面,希望能用在uniapp。当然这些说起来容易,思路也清楚,但是真正做起来,真的很复杂,工作量很大,也会碰到各种各样的难点,更会碰到平时开发业务中根本碰不到的棘手的问题。
2024-08-03 15:30:07
400
原创 Vue2使用monaco-editor
之前写了一篇vue3使用monaco-editor的博文(),vue3中使用过程很顺利,没发现什么问题。但是在vue2中使用碰到一些坑。不过最后总算是搞出来能用了。首先跟vue3一样,安装monaco-editor、monaco-editor-webpack-plugin这两个插件。vue3里面呢直接安装最新的就行了,但是在vue2中对版本有要求,不能太高了,经过最后的测试,
2024-08-03 14:51:16
933
原创 uniapp微信小程序端实现微信登录
从网上看了一些,好像说是要先调用uni.getUserProfile 或者uni.getUserInfo获取用户信息后,然后再调用uni.login才行,但是我看着uni.getUserProfile和uni.getUserInfo 返回的都是一些匿名信息(nickName: "微信用户", 头像也是统一的灰色头像),不知道有啥用哦,应该是之前是可以正常返回的,后来不知哪个版本后应该是为了用户的隐私、安全啥的,就都返回匿名信息了。(提前向用户发起授权请求。
2024-07-08 10:38:27
3331
原创 uniapp运行到小程序Vue.use注册全局组件不起作用
真想吐槽一下小程序,uniapp运行到小程序使用Vue.use注册全局组件根本不起作用,也不报错,这只是其中一个问题,其他还有很多问题,比如vue中正常使用的没问题的语法,运行到小程序就不行,又是包太大也不让上传等等乱七八糟的问题。uniapp相对于小程序算是好点儿,但是uniapp的开发体验也真是糟糕,HBuilderX不好用,另外uniapp官方提供的内置的组件、api等感觉写的也不够直观明了、跟它搭配使用的u-view、uCharts等组件库跟的跟element-ui没法比。
2024-06-30 17:15:56
1487
原创 Vue2中的render函数
我们在给子组件传递数据的时候,也就是父传子,一般写在props中, 其实也可以写在attrs中,如果写在attrs中,我们也可以在子组件中props中接受attrs中的变量,如果props中没写的变量都会在attrs中,我们在组件中通过this.$attrs中可以拿到。先使用render函数封装一个组件,注意写了render函数就不要写template了,不然render函数不起作用。这是加载组件G1,注意:我们加载的组件一定是引入、注册之后的,我这里全局注册了,来创建你的 HTML。
2024-06-25 09:28:42
988
原创 TypeScript中的infer关键字
在TypeScript中,infer是一个关键字,用于在条件类型(conditional types)中推断(infer)类型参数。通过使用infer关键字,我们可以在类型系统中进行类型的自动推断,从而实现更加灵活和可复用的类型定义。infer关键字通常用于条件类型(conditional types)中,条件类型是TypeScript中的高级类型操作符之一。通过条件类型,我们可以根据某个类型的特性,在类型系统中进行条件分支和类型的变换。
2024-02-22 17:38:11
920
1
原创 TypeScript中的Omit、Pick、Partial、Required类型
最近使用到了Omit、Pick、Partial类型,之前也没写过,这篇说下typescript中提供的Omit、Pick、Partial、Required类型
2024-02-19 17:01:49
1274
原创 ResizeObserver的使用
这篇说下ResizeObserver API。ResizeObserver接口监视Element内容盒或边框盒或者SVGElement边界尺寸的变化。
2024-02-05 18:03:47
1054
2
face recognition demo(vue、h5、uniapp-h5、uniapp-wx)
2025-01-25
TexturePacker3.0.9(cocos做图集用到了)
2024-04-16
electron-quick-start-exe(cocos打包桌面程序 .exe)
2024-03-28
录屏软件obs-studio
2024-03-01
js解析Cron时间表达式为中文描述
2023-11-14
实现一个mini-vue
2023-07-30
基于Vue2+element-ui+AntV X6实现的流程图编辑器
2022-10-17
基于Vue3+ts+AntV X6实现的流程图编辑器
2022-10-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人