- 博客(82)
- 收藏
- 关注
原创 常见的状态码
状态码的职责是当客户端向服务器发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求还是出现了错误。状态码的类别:类别原因短语1XX Informational(信息性状态码)接受的请求正在处理2XX Success(成功状态码)请求正常处理完毕3XX Redirection(重定向状态码)需要进行附加操作以完成请求...
2019-09-19 17:43:52 811
原创 MVC、MVP、MVVM 三种架构模式的区别
MVC模式概要1.即Model、View、Controller即模型、视图、控制器。-View:它是提供给用户的操作界面,是程序的外壳;Model:是程序需要操作的数据和信息;Controller:接收View层传递过来的指令,选取Model层对应的数据,进行相应操作。2.举一个现实中的类似的例子,MVC如同一家商铺的运作模式,View层相当于是这家商铺的店面,Model层相当于这家商铺...
2019-09-17 13:56:01 1079
原创 小程序常用组件动效【附代码】
left: 0;bottom: 0;left: 0;js// 显示遮罩层delay: 0})})})},// 隐藏遮罩层delay: 0})})})
2024-05-06 11:01:47 624
原创 【uniapp】支付模块-前端
3.获取多个支付的服务商(这一步因为我公司的只用微信支付就没去获取了),可以参照官方示例Demo hello项目;里面的获取服务商代码如下: (单个微信支付的可以跳过这个)UniAPP 进行微信支付时报错: {“errMsg”:“requestPayment:fail:[payment微信:-1]General errors”}这个问题的话。通过网上各种经验参考如果你遇到了这种情况,建议首先将打包成功的APP应用下载到手机上(暂定安卓机)进行微信支付操作,很可能是成功操作哦!,解决方案可以看这位老哥的。
2024-05-03 13:30:00 530
原创 小程序canvas生成二维码图片踩的坑
1:生成临时图片,保证画布被加载以及渲染(即本身不可以 hidden 或是 上级元素不可以 hidden 或是 wx:if 隐藏等)== 》 建议:因为 canvas 的组件层级(z-index)是最高的,无法通过层级改变,如自定义的弹框类似的组件总会被挡住== 》 若不想给挡住,便要控制 canvas 隐藏(hidden 、 wx:if)但是利用 API ctx.setGlobalAlpha = 0(只是变成不透明,视觉上给隐藏,但是还是还在,若是那位置有 tap 等事件就尴尬了)
2024-04-30 08:45:00 456
原创 微信小程序使用weui扩展组件踩坑
第一步 进入你的小程序根目录下(带app.json的目录)初始化npm 这步的意思是让当前文件夹以node_modules模块化的方式引入组件,会询问你项目相关信息,一直回车就行。这步要注意,扩展组件需要单独安装,上面全局安装的weui只会安装基础组件,这个地方官网并没有给出其他组件怎么安装的,只是给举了个video-swiper的例子。操作步骤:点微信开发者工具的 工具-构建npm,如果上面都执行成功的话,这步会在根目录下生成一个叫miniprogram_npm的文件夹。
2024-04-30 07:00:00 325 1
原创 uniapp导入导出Excel
至于导入Excel,我这里就不贴代码了,思路就是利用uniapp的web-view标签,相当于是传统网页的做法,利用input标签的file属性,最后把解析到的值,传递回vue页面。所以,百度上那些所谓的导入导出excel的方法,大部分都用不了,比如xlsx那个插件,虽然很多方法在vue里不支持,但解析数据等不包含dom那些对象的方法可以考虑下。tips:手机上不比电脑,如果要调试如上功能,建议下个办公软件,比如wps手机版,这样找excel文件就比较快。
2024-04-29 14:14:46 839
原创 【微信小程序】反编译
以上是目前考虑的安全防范,但是由于小程序本身是可以破解的,因此以上的方案就现的不太安全,但是能够起到一定的保护作用。以上即为对OFO小程序的破解步骤,通过编辑器打开看了一下代码,发现可读性还是非常好的,结构完整,部分变量做了混淆,即使里面存放了公钥和算法都可以找到进行研究,因此前端永远都不是安全的。于是我针对OFO小程序做一次编译和破解,深入了解一下情况,看看我们的加密是否安全,如果解密之后,代码暴露无疑,公钥和算法轻易拿到,说明前端永远都不是安全的。随便选择一个用户进去,确保这个用户点击过ofo小程序。
2024-04-29 14:05:18 949
原创 【微信小程序循环同步请求踩坑指南】
最近做微信小程序校园失物巡回箱的时候需要完成一个逻辑就是用循环while/for 来不断向云数据库发送读写请求,有感而写,希望能给你启发。
2024-04-29 11:09:41 500
原创 【uniapp踩坑指南】--微信小程序转发&保存图片
微信小程序图片转发保存简单说明微信小程序图片转发保存,依赖小程序的转发api——通过调用这个api能触发如下弹窗这个api要求要分享的图片地址必须为本地路径或者临时路径,所以如果你的图片是本地路径或者临时路径,那就不需要继续往下看了。如果不是本地路径或者临时路径,那我们要解决的问题就是怎么把图片转为临时路径,这里常见有两种图片形式:网络图片:https://res.wx.qq.com/wxdoc/dist/assets/img/demo.ef5c5bef.jpg。
2024-04-29 11:05:08 830
原创 antd-design-Table 自定义编辑表头
第一步需要先安装组件在ant-design基础上开发,所以你也要安装antd。数据持久化使用的,也是要安装的。另外,react也是peer dependency。
2024-04-29 10:25:58 1245
原创 引入pro-components运行项目时报错
背景: 多人开发的协作环境。开发环境:node使用nvm管理多版本,项目引入了报错原因: pro-components 组件库内很多依赖项 都引入了colorPicker 组件,但是老的引入方式为:此引入依赖的方式在新版本不兼容。
2024-04-18 09:56:56 425
原创 为什么在js中需要添加addEventListener()?
addEventListener(监听器)—EventTarget.addEventListener()方法将指定的监听器注册到 EventTarget 上,当该对象触发指定的事件时,指定的回调函数就会被执行。事件目标可以是一个文档上的元素 Element、Document 和 Window,也可以是任何支持事件的对象(比如 XMLHttpRequest)。
2024-04-12 18:07:25 406
原创 XML文档节点导航与选择指南
XPath(XML Path Language)是XSLT标准的主要组成部分。它用于在XML文档中浏览元素和属性,提供了一种强大的定位和选择节点的方式。
2024-04-12 17:59:23 1153
原创 可视化学习:使用WebGL绘制圆形,实现色盘
在Canvas2D中实现圆形的绘制比较简单,只要调用arc指令就能在Canvas画布上绘制出一个圆形,类似的,在SVG中我们也只需要一个<circle>标签就能在页面上绘制一个圆形。那么在WebGL中我们要怎么去绘制呢?WebGL只能绘制三种形状:点、线段和三角形,它没有提供直接绘制圆形的功能,当然也无法像SVG一样使用标签,所以我们是无法直接绘制圆形曲线的,这个时候我们可以借助相关的数学知识,来实现圆形的绘制。
2024-04-12 17:24:36 776
原创 react 僵尸孩子问题
在异步操作的回调函数中,我们首先判断了 isUnmounted 的值,只有当父组件仍然存在时,才更新父组件的状态。这种情况通常发生在异步操作中,例如在父组件中发起了一个异步请求,而在请求完成之前,父组件被销毁了。但是,由于异步请求的回调函数仍然存在于内存中,它们会继续执行,尝试更新已经被销毁的父组件的状态或引用已经不存在的 DOM 元素。是指在 React 组件中的一个常见问题。通过这种方式,我们可以避免 React 僵尸子组件的问题,确保在父组件被销毁时,相关的异步操作也被正确地取消。
2024-04-12 13:49:42 345
原创 CDN优化
构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。于是,用户在上网的时候不用直接访问源站,而是访问离他“最近的”一个 CDN 节点,术语叫边缘节点,其实就是缓存了源站内容的代理服务器。通过CDN的负载均衡系统,智能调度边缘节点提供服务,相当于CDN服务的大脑,而缓存系统相当于CDN的心脏,缓存命中直接返回给用户,否则回。看用户所在的运营商网络,找相同网络的边缘节点。
2024-04-12 11:36:22 361
原创 git worktree与分支依赖隔离
允许在同一存储库中的不同分支上同时进行工作,而不需要频繁切换分支,这对于需要同时处理多个功能或修复多个 bug 的情况非常有用。:从原有项目开辟一个分支作为另一个新项目,当两个项目依赖差距越来越大时,每次切换分支后都需要重新安装依赖。进行实验性更改:在不影响主工作目录的情况下,尝试进行实验性的更改或调试。之间不能互相切换分支,只需要打开对应工作区即可进入对应的分支。,两个分支作为两个项目并行开发,且两分支下的依赖存在差异。要创建的新工作区的路径,一般建立在当前目录的上一层,如。要在哪个分支上创建工作区。
2024-04-12 11:28:23 648
原创 前端js判空处理,js字符串判空,js数组判空
在 js 中,字符串为空会有这么几种形式,“”,null,undefined,如果在已知变量为空串的情况下可以直接采用 if (string.length == 0) 这种形式,今天总结一下常用的几种方法,方便下次查阅。
2024-04-12 11:15:02 661
原创 图解WebGL&Three.js工作原理
我们假定你对WebGL已经有一定了解,或者用Three.js做过了一些东西,这个时候,你可能碰到了这样一些问题:1、很多东西还是做不出来,甚至没有任何思路;2、碰到bug无法解决,甚至没有方向;3、性能出现问题,完全不知道如何去优化。这个时候,我们需要了解更多。
2024-04-11 10:53:55 1102
原创 flex: 1 是哪些属性的缩写?
上述代码 的flex-basis加起来是240px,父容器分完以后剩下260px,ABCD的flex-grow加起来10,那么每一份是26px,最终AB是60px + 26px = 86px,CD是60px + 26px * 4 = 164px。最终A的宽度 = 100 - 100 * 1 / (100 * 1 + 200 * 1 + 300 * 4 + 400 * 4) * NT =flex:1 是 flex-grow: 1, flex-shrink: 1,flex-basis: 0% 的缩写;
2024-04-08 16:28:55 800
原创 JS实用小方法-将时间转换为 `刚刚`、`几秒前`、`几分钟前`、`几小时前`、`几天前`、几月前或按照传入格式显示
默认规则,大于等于一天(24小时)展示’X天前;大于等于30天且小于365天展示’X个月前’;大于等于365天且展示’x年前’,否则按照传入参数规则展示。为传入时间 例:“2023/5/10 11:32:01” 2023-02-01 09:32:01。为返回类型 例:- / 年月日 年。参数为是否数字补零,默认补零。时间参数date为必写参数。
2024-04-08 16:23:17 514
原创 lodash 使用
用于将多个数组的对应元素按索引位置进行压缩,返回一个包含元组的数组。用于找到两个数组之间的共同元素,返回同时在两个数组中出现的元素。: 用于将多个数组的对应元素按索引位置进行压缩。: 用于将数组或对象按照特定属性或条件分组。
2024-04-07 09:40:41 955
原创 十分钟学会WebSocket
WebSocket是一种在客户端和服务器之间实现双向通信的网络协议。它通过在单个TCP连接上提供全双工通信功能,使得服务器可以主动向客户端推送数据,而不需要客户端发起请求。WebSocket 协议是一种基于 TCP 的应用层协议,它提供了在客户端和服务器之间进行双向通信的能力。相比传统的 HTTP 协议,它具有更低的延迟和更高的实时性。WebSocket 协议通过建立一条持久化的连接来实现双向通信,从而避免了 HTTP 协议中频繁建立和断开连接的过程,减少了网络开销和服务器的负担。
2024-04-07 09:25:50 784
原创 如何搭建一个自己的博客?
虽然通过地址可以正常访问博客,但是技术小伙伴们肯定有人想使用自己的域名访问博客,这样的需求 GitHub Pages 也是支持的。首先需要设置域名解析,将域名的地址指向自己的 github 博客地址。这里以万网的域名配置为例,选择需要设置的域名点击解析,在域名解析页面添加以下两条记录红框内,需要填写自己值。然后重新打开项目的页面,xxx.com,点击保存即可。重新配置打开项目目录下的即可访问博客。一般同学到上面这一步也就完成了,基本满足了 80% 技术同学的需求。
2024-04-04 07:45:00 695
原创 react-transition-group 实现路由切换过渡动画
是一个 React 组件,通常在路由配置中使用,用于指定当前路由的子组件应该被渲染到哪个位置。它是一个受控组件,也就是说,它的值(即要渲染的组件)是由父组件(通常是路由组件)控制的。当父组件的状态发生改变时,更适合在 React Router 的路由配置中使用,用于在应用程序的当前路由中渲染嵌套的 Route 组件。,你可以在组件中获取到当前路由的子路由组件,并将其渲染到指定的位置。则更适合在函数组件内部使用,用于在组件中获取当前嵌套路由的信息。是一个非受控组件,它的值是由调用 Hook 的代码控制的。
2024-04-03 09:45:00 1138 1
原创 5分钟教会你如何在生产环境debug代码
有时出现的线上bug在测试环境死活都不能复现,靠review代码猜测bug出现的原因,然后盲改代码直接在线上测试明显不靠谱。这时我们就需要在生产环境中debug代码,快速找到bug的原因,然后将锅丢出去。生产环境的代码一般都是关闭source map和经过混淆的,那么如何进行debug代码呢?我一般都是使用这两种方式debug线上代码:“通过console找到源代码打断点”和“通过network面板的Initiator找到源代码打断点”。
2024-04-03 07:00:00 666
原创 async与defer的区别
更适合于不需要等待页面完整加载即可运行的第三方脚本,因为它提供了更高的灵活性,但可能伴随着一定的执行时机的不确定性。属性的资源时,它会立即开始下载该资源,同时继续加载页面。代码之前,页面已经完全准备好,从而减少了潜在的错误风险。代码中修改了 DOM(文档对象模型),可能会出现错误,特别是在依赖外部资源的场景下。是两种不同的JavaScript特性,它们的主要区别在于它们的执行顺序和时间点。则是为了确保页面加载完成后才执行脚本,减少因页面未加载完全而引发的错误。并不保证具体的执行时间,所以如果在。
2024-04-02 17:30:00 590
原创 React jsx 语法解析 & 转换原理
jsx是一种JavaScript的语法扩展(eXtension),也在很多地方称之为JavaScript XML,因为看起就是一段XML语法,用于描述UI界面,并且可以和JavaScript代码结合使用。等,而是直接使用JavaScript语法就可以实现这些标签的功能。为何React中编写UI界面需要使用jsx语法呢?使用js选中元素,然后修改元素;元素上绑定有事件时,需要绑定对应的事件函数;js中某些数据发生变化时,需要修改html元素。索性,React直接将两者组合在一起进行管理。
2024-04-02 10:18:05 929
原创 vsCode设置代码片段
后按 tab 键可以生成代码片段,然后再按 tab 键可以调到下一个占位符。body 片段里面可以使用特殊的结构来控制插入的光标和文字。上面是一个简单的方法注释代码块,占位符默认不带可选项,如果要。,括号中的 1 对应的是按 TAB 之后的光标落点顺序,新建完成的代码片段有默认参考例子,打开注释可以测试。,可以看到第一个是我们自己添加的代码片段。的位置),如下图可以看到设置的可选项。3. 可以选择创建当前文件夹的代码片段。符号作为占位符,当输入代码片段的。用于设置最终光标的位置,设置了。
2024-04-02 09:50:06 1514
原创 一个完整的http协议中都包含什么?
XMLHttpRequest(XHR) 对象用于和服务端交互。它可以从URL取回数据而不用刷新整个页面,这使得可以只更新页面的局部而不影响整个页面。如Demo3所示,使用XMLHttpRequest发送GET请求,在URL中添加“?fname=Bill&lname=Gates”实现发送信息。XMLHttpResponse 对象的 onreadystatechange 属性中定义了请求接收到应答是所执行的操作。该GET请求的在浏览器中的请求信息如图5所示。//GET请求。
2024-04-01 14:51:03 2133
原创 npm常用命令
在sum文件夹下 npm link, windows 下 C:\Users\Admin\AppData\Roaming\npm\node_modules\sum -> D:\sum,在Linux下 /usr/local/lib/node_modules/sum -> /home/sam/sum,就是在全局node_modules下,创建一个软链接或快捷方式sum,指向本地模块, 也相当于在全局node_modules下安装了sum。来修复问题, 它会尝试更新依赖到固定的版本,注意,它只会更新。
2024-04-01 10:03:05 779
原创 Vue项目中IE11兼容性问题记录
(1)安装 babel-polyfill。babel-polyfill可以模拟ES6使用的环境,可以使用ES6的所有新方法(2) 配置 babel.config.js(3) 在每个入口文件上方添加(4) 重启项目默认情况下babel-loader会忽略所有node_modules 中的文件。如果想显式转义一个依赖,可以配置transpileDependencies。
2024-04-01 09:50:26 850
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人