- 博客(595)
- 收藏
- 关注
原创 rollup学习笔记
rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,比如我们的es6模块化代码,它就可以进行tree shaking,将无用代码进行清除,打包出精简可运行的代码包.业务开发项目的时候,我们一般是使用的webpack,它的功能更全面,但是如果我们只是为了打包js库之类的代码,那么使用rollup更为方便.
2024-06-19 16:35:33
1474
原创 pr中镜头防抖动
无人机在风大的时候,拍摄的视频就会有抖动,可以利用pr中的变形稳定器来消除这种抖动.具体路径在:效果-扭曲-变形稳定器,将其拖动到视频轨道上,等待分析完成即可.
2024-05-14 23:35:28
454
原创 java泛型
这不就重复书写代码了吗?为了复用代码,我们就想着有一个字符来指代这个类型.于是就有了泛型,顾名思义,就是广义上的类型的别称.这里ArrayList就是说明这是使用泛型定义的类,其中T就是这个类型代号.具体使用的时候,把这个T用具体的类型去赋值即可.
2024-04-24 16:05:35
780
原创 java面向对象基础
而如果我们想要有更好的封装,让定义的属性只能够在类内进行访问和修改,就需要使用private来创建私有属性.这样一来,外部代码就没有任何机会把age设置成不合理的值。
2024-04-16 09:59:25
660
原创 tomcat和Servlet开发小案例
servlet>这段XML配置代码用于将Servlet类com.masiyi.servlet.MyServlet映射到URL模式/myServlet上。指定了Servlet的名称为myServlet。指定了Servlet类的完整路径为com . masiyi . servlet . MyServlet。通过这样的配置,当用户请求的URL匹配/myServlet时,容器将会调用com.masiyi.servlet.MyServlet来处理该请求。
2024-03-28 15:42:14
959
原创 Tomcat和Servlet了解
先了解下主机-系统-容器和程序这几个之间的关系.也就是说,我们平时所说的服务器,就是安装了服务器软件的计算机.而服务器软件的作用就是:接收用户的请求,处理请求,做出响应.我们常常听见后端同事说的tomcat就是一种web服务器.
2024-03-27 17:43:50
1162
原创 jdbc使用java连接数据库学习笔记
之前我是通过控制台和mysql可视化工具来操作数据库,而JDBC 是 Java 访问数据库的标准规范,通过它,我可以用java程序来访问数据库.然后按照下图导入包:值得注意的是mysql版本是8.0.x的话,jar也得下载8.0.x版本的jar包.不然会报错.
2024-03-21 16:07:02
542
原创 查看nginx日志文件
要查看Nginx的日志文件,首先需要知道Nginx的配置文件中定义的日志文件路径。通常情况下,Nginx的日志文件位于/var/log/nginx/目录下。Nginx日志文件是经过压缩的access.log.gz文件,你可以使用zcat、zgrep或者gunzip命令来查看其中的内容。要筛选出Nginx日志文件中包含"test"的内容,你可以使用grep命令。grep命令可以用来搜索指定模式的文本,并将包含该模式的行输出到标准输出。可以使用cat命令或者tail命令来查看这些日志文件的内容。
2024-03-20 14:57:09
1909
原创 MySQL 多表查询与事务的操作
有些数据我们已经拆分成多个表,他们之间通过外键进行连接.当我们要查询两个表的数据,各取其中的一列或者多列.这时候就需要使用多表联查.如果现在我们想知道对应员工所在的部门,就需要联查,但是如果仅仅则会把所有的情况罗列出来,但是有效的数据,其实仅仅是,也就是外键等于主键的情况.
2024-03-19 17:49:07
751
原创 mysql的学习笔记
干前端好几年了,只会前端总感觉少了条腿,处处不自在,决定今年学习下后端的东西.以前总想着学node会更快,但是实际工作上却用不上.出来混,总是要还的,该学的javaWeb这一套体系的东西,总是需要学习的.那就开始啦.
2024-03-18 10:13:44
998
原创 微信小程序canvas开发的一些坑和总结-持续更新
当canvas重新渲染时,canvas中的内容全部都会被清空。解决 popup弹出后,不要马上绘制,需要等待popup中的canvas渲染完成后,在调用canvas取绘制就好了!这是因为新版的canvas绘制是同步的,而canvas的初始化又是异步的,这就导致popup弹窗我们用v-if来创建时,就会发生这个问题.也就是放置在nextTick中,等canvas初始化完成后再绘制即可.第一步是html中修改。
2024-02-21 11:17:53
1789
原创 canvas学习笔记
当我们在画画前,要做的事情是不是选择一款合适的画笔(当我们没有选择时,canvas会提供默认的)?canvas对象有一系列的属性,来定义该画笔的形态.绘图状态是canvas中非常重要的一个概念,每次画图,都是基于当前的绘图状态,类比于ps中的画笔加图层.图形上下文对象(CanvasRenderingContext2D)的当前属性值属性:fillStylelineWidthlineCaplineJoinmiterLimitshadowBlurfonttextAligndirection当前变形。
2024-02-05 09:53:38
1078
原创 微信的新版canvas绘制的图案发生变形和偏移的问题
150,如果不是这个值的话,绘制的内容会被拉伸.(想象着300。本来绘制的是正方形,结果绘制出来是个矩形,边的宽度也不一样。150画布上的内容被拉伸)画布初始的宽度是300。
2024-01-26 15:00:20
1129
原创 canvas画笔功能的实现
对canvas的封装,这里是我自己写的,主要实现就是在this.canvas.add(paintBrush)的时候,能够执行paintBrush的render,从而绘制图案罢了.到目前为止,已经能简单绘制图案了,其实思路很简单,就是先用moveTo到第一个起点,然后后续的点都使用lineTo来绘制.现在的线段,其实是一段段小的折线,并不美观,我需要的是曲线的连接,这里我采用的是二次贝塞尔曲线连接.上文使用tochmove来采集点,太多了,性能很差,我们可以根据采集点的距离来筛选一些有效的点.
2024-01-23 16:14:51
930
原创 简易版前端项目离线方案-接口及页面离线缓存
为了避免后端流控、崩溃等异常而无法访问的情况,就需要将接口和页面的静态资源缓存在用户的浏览器本地,这样一来,就算后端服务不可达,前端依旧能有正常的页面显示操作反馈,大部分用户无法感知到系统出现了故障.
2024-01-02 15:38:10
1872
原创 手把手云开发小程序-(五)-小程序的发布和上线
目前已经初步完成页面功能的开发,可以发布上线了.但是我们目前都是在本地调试.要想上线,就需要把本地的服务上传到云端,然后打通云端的网络访问关系.
2023-11-27 11:39:16
560
原创 手把手云开发小程序-(四)-uniclould增删改查业务开发
不用去纠结uniCloud从哪来的,编译的时候,框架会给我们自己引入的.这里直接这么用就行了,可以暂时把它理解成一个全局的对象.只要这样引入tab云对象,就能调用该云对象的addTabs方法啦.其他的业务开发大同小异,就不多说啦.其他功能可以扫描我文章开头的二维码,体验一下,这个小程序是我自己将一直使用的,这里就当打个小广告吧,也会持续维护迭代.有啥优化意见大家也可以提哈.页面开发就不说了,无非就是html+css,这里主要讲讲如何使用uniclould进行增删改查.这样就完成了增加标签的业务逻辑啦.
2023-11-23 11:20:49
456
原创 手把手云开发小程序-(三)_uniclould小程序的登录
其实uniclould有uni-id来实现登录的一系列逻辑,但是它太多对我而言无用的数据了.我只需要简单的数据.那就自己写呗.小程序登录 | 微信开放文档 (qq.com)
2023-11-21 09:31:39
1016
1
原创 手把手云开发一个小程序-(二)-uniclould的购买和默认库的使用
因为平时喜欢记录一些文案,看小说或者上网冲浪的时候,遇到拍案叫绝的文字,就会截图保存下来,但是时间久了,手机里截图保留了很多,却不会再去看,想删除又舍不得,于是就想着自己开发个文案记录的小程序.自用的同时让有同样需求的人也能用.目前已经把第一个版本开发完了,可以扫描二维码,进行体验,下图是体验的二维码和基本的操作指引.上篇文章中,我们使用uniclould创建了一个小程序,并且了解了上传和发布小程序版本的具体步骤,这篇文章呢,将会继续讲解我们的小程序如何使用uniclould实现无后端的云开发。
2023-11-16 09:43:17
318
原创 手把手云开发一个小程序-(一)-搭建项目框架
因为平时喜欢记录一些文案,看小说或者上网冲浪的时候,遇到有意思的文字,就会截图保存下来,但是时间久了,手机里截图保留了很多,却不会再去看,想删除又舍不得,于是就想着自己开发个文案记录的小程序.自用的同时让有同样需求的人也能用.目前已经把第一个版本开发完了,可以扫描二维码,进行体验,下图是体验的二维码和基本的操作指引.然后呢,因为开发这个小程序的过程中,我遇到一些问题,官方文档又不大友好(变化太多,更新滞后),于是就想把这个过程记录分享出来,我喜欢和人交流分享哈哈.如果对有他人有帮助,我也会很开心的!
2023-11-15 10:57:24
165
原创 作用域和作用域链
本文将讲解作用域的形成和应用,并且在这基础上简单讲解for循环中的let创建的块级作用域原理。var a="最外层变量"var a="函数内变量"console.log(a)//函数内变量testFn()console.log(a)//最外层变量a="未定义直接赋值的变量,自动声明为全局变量"var b="函数内定义的变量,外层无法访问"testFn()console.log(a)//未定义直接赋值的变量,自动声明为全局变量。
2023-10-18 15:49:53
342
原创 node-sass安装不上的问题
最后,还是报错,因为网络正常的情况下安装 node-sass 是不需要Python环境的,如果拉不下来对应的binding.node就会进入尝试【本地编译】,然后会检查是否具备的条件:需要python环境,报的错一般就会提示python没有安装.于是需要安装python;换了台电脑,拉之前的项目,在mac上跑,node-sass安装一直报错.首先确保node版本和安装的node-sass版本对应.其次,因为需要科学上网才行,但是我们可以使用淘宝镜像。安装完成之后,再安装node-sass即可。
2023-10-12 17:33:53
1205
1
原创 evaluating project ‘:react-native-community_netinfo‘. > Could not get unknown property ‘com‘ for ext
这个是netinfo包的版本有问题,后来我下载了3.5.3的版本.
2023-07-21 16:17:53
500
原创 运行react ntive项目,运行到下载gradle就报错
然后是网络问题,下载这个通常需要科学上网.如果代理有问题,或者网络不行,就容易报错.我是把它下载好之后,放到这个文件夹内,然后项目中的配置地址指向这个下载好的地址.gradle的版本和gradle插件版本需要对应,稍有不对,就会报错.运行react ntive项目,运行到下载gradle就报错.就是gradle的版本和下载地址.先确认这两者的版本是符合要求的.我的处理是预先下载好这个文件.gradle插件版本.然后重新跑项目即可.
2023-07-21 14:30:57
460
原创 Task :app:javaPreCompileDebug FAILED
在打包react native项目的时候,报错如下信息,我的项目的react-native版本比较低,是0.62…出现这个报错是因为中间各种资源下载不了,需要把gradle配置里面android studio设置的代理注释掉.有这个代理是因为在安装android studio的时候,最初我按照网上的教程设置了个代理.如下图,虽然我后来设置成了no-proxy,但是系统设置里面还是有代理的,需要手动修改.我用的是mac,如果是window,也进行对应处理就好.然后把后面几行全局代理配置删除或者注释掉即可.
2023-07-21 14:21:30
1194
原创 ‘:app:mergeDebugAssets‘. :app:debugRuntimeClasspath
主要是因为eact-native-community相关的一系列库,因为版本问题,链接不上.我的react native版本是0.62.2.
2023-07-21 12:53:41
908
原创 重新理解z-index
今天遇到一个布局兼容问题,调试了一番,发现z-index的表现和自己的认知不相符,才知道自己对z-index的认知有错误,于是写篇文章总结下这个z-index的具体使用。有基础的朋友可以直接看第四节。对于z-index的使用规律,MDN实际上就简单一句话:”z-index越大则越上层,有爹则拼爹“。1,同一个层叠上下文中,z-index越大则越上层。2,不同层级上下文,则层级越高越上层。3,层级等级和层叠等级相同的,则后来的覆盖之前的。
2023-07-06 09:49:16
850
原创 浅谈异步编程中错误的捕获
之前的文章说到,async和await可以取代生成器函数和yield的组合,实现优雅的异步操作写成同步写法。那异步错误的捕获又该如何处理?这篇文章我将先讲async和await的特点,然后讲解异步编程中错误的捕获。async关键字标记的函数,会变成异步函数,它的返回值和一般函数不同。1.1,async的返回必然是一个promise如果返回的是普通值,它会用promise.resolve()把它转化为promise的。如果返回值是promise,那就走正常的promise逻辑,看它异步操作后的结
2023-05-05 00:12:44
1501
原创 从promise到await
在之前的中,已经讲完了从异步操作到promise的诞生,但是promise也仅仅是做到了异步操作和结果的分离,当我们有多个异步操作,且结果前后有依赖的时候,不可避免的,就会出现一系列的.then方法。还是不大优雅。最理想的情况是,。【注一】这里,需要先了解迭代器和生成器。
2023-04-19 23:47:07
913
原创 从异步到promise
这一点是promise存在的最大价值体现。它的实现,其实就是让then方法传入的函数在异步操作后执行即可。这里为了方便描述,我只说成功的情况。一种情况是在调用then方法的时候,异步操作还未完成(promise的状态是pedding)。大致的流程如下:【这里本来是动图的,但是csdn不允许上传这么大的动图,,,具体的可以看我公众号吧,嘻嘻,我最近开始写公众号啦!撒花!另一种情况是,在调用then方法的时候,异步操作已经完成(promise的状态已经变成fulfilled)。
2023-04-04 23:44:32
683
原创 《第一行代码》 第十章:服务
/唯一的抽象方法,必须在子类中进行实现 // TODO: Return the communication channel to the service. throw new UnsupportedOperationException("Not yet implemented");//服务创建时调用 super . onCreate();//服务启动的时候调用 return super . onStartCommand(intent , flags , startId);
2023-03-03 17:11:17
446
原创 vue-template-admin的keep-alive缓存与移除缓存
A页面是表单页面,填写后需要跳转B页面。如果B页面不操作返回的话,应该能还原A页面的内容,而如果B页面点击提交,再回到A页面的时候,应该清除缓存。
2023-03-03 17:04:02
3316
1
原创 从window.history理解浏览器返回不触发页面刷新问题
DOM window 对象通过 history 对象提供了对浏览器的会话历史的访问,它暴露了很多有用的方法和属性,允许你在用户浏览历史中向前和向后跳转,同时——从 HTML5 开始——提供了对 history 栈中内容的操作。
2023-02-28 11:31:11
4788
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人