自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 mac和windows上安装nvm管理node版本

NVM 是 node version manager 的缩写,它是一个用来管理电脑上 node 版本的命令行工具,在日常前端开发中是一个跟 node 一样会经常用到的工具,可以很方便的让我们快速切换不同的node版本。

2024-08-22 07:15:00 1038

原创 mybatis动态SQL常用语法总结

在 mybatis 的 xml 文件里写的 sql 语句实际用的是一门叫做 OGNL 的表达式语言,OGNL 全称 Object Graph Navigation Language 对象图导航语言,是常应用于 Java 中的一个开源的表达式语言(Expression Language),它被集成在 Spring、Mybatis、Struts2 等 Java 框架中,通过简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现类型转化等功能。

2024-07-10 23:11:29 1142

原创 谁说forEach不支持异步代码,只是你拿不到异步结果而已

在前面探讨 forEach 中异步请求后端接口时,很多人都知道 forEach 中 async/await 实际是无效的,很多文章也说:forEach 不支持异步,forEach 只能同步运行代码,forEach 会忽略 await 直接进行下一次循环…

2024-07-10 21:44:32 1006

原创 遍历请求后端数据引出的数组forEach异步操作的坑

有一个列表数据,每项数据里有一个额外的字段需要去调另外一个接口才能拿到,后端有现有的这2个接口,现在临时需要前端显示出来,所以这里需要前端先去调列表数据的接口拿到列表数据,然后再遍历请求另外一个接口去拿到对应的字段数据,最后再塞到列表数据里,具体可以看下面的示例代码。

2024-07-09 22:52:14 642

原创 java常用数据判空、比较和类型转换

java 开发中我们经常会用到的数据判空、数据比较和不同数据之间的类型转换,尤其数据判空可以让我们避免经常会出现的 NullPointerException 空指针异常报错。

2024-06-30 21:00:01 727

原创 从0到1开发一个自己的npm包完整过程

很多人一想到封装这些就觉得是一件很难的事,其实除了前端中我们经常用到的 ui 组件库,还有很多东西都是可以自己来封装成 npm 包的,哪怕只是一个处理某些数据的 function 函数同样是可以发布成 npm 包的。当然,这里也不推荐大家往 npm 上随便发布一些无意义的包,但是对于我们很多项目中用到的一些自己的公共方法,就完成可以封装成一个自己的 npm 包以便在不同的项目中复用。这样就会在本地的全局 npm 目录中创建一个我们自己的包的符号链接,可以通过 npm list -g 命令来查看是否生效。

2024-05-27 22:49:23 1337

原创 小程序中使用npm安装vant组件实现按需引入减少代码包大小,避免触发用户隐私协议

微信小程序按需引入 vant 组件,自动清除项目中未使用的 vant 组件,减少代码包大小,避免因未使用到的 vant 组件触发隐私协议提交审核时被拒

2024-05-25 11:52:00 1018

原创 小程序中使用npm安装vant组件实现按需引入减少代码包大小,避免触发隐私协议...

在小程序中使用 vant 组件库主要有以下两种方式:下载源代码包放入项目中,可以自己删掉没用到的组件,不过后期只能自己手动更新,会不太好维护通过 npm 的方式安装管理依赖,后期更新可以直接交给 npm 来管理,方便维护正常项目中我们可能都会选择 npm 的方式,但是这种方式 vant 和小程序并不支持像我们一般的前端项目中的按需引入,小程序开发工具构建 npm 时会把整个 vant 的组件编译到...

2024-05-25 11:43:39 405

原创 苹果app开发apple-app-site-association文件配置

apple-app-site-associon 是苹果公司提供的一种能让app和网站关联起来的配置文件格式,用于在app中实现Universal Links。该文件包含app与网站之间的关联信息,使得用户在点击网站链接时可以直接唤起手机上的app,实现跳转到app内对应页面的功能,提升用户体验

2024-05-19 23:17:12 2543 1

原创 java项目中使用protobuf扫盲笔记

最近公司 Java 项目中有用到 protobuf,查了些资料还是一脸迷茫。主要纳闷这玩意到底有啥用呢?直接自己写 class、interface 不是更方便,还需要先写个 .proto 文件编译成 java 文件再来调用,这不是脱了裤子放屁吗? Protocal Buffers(简称protobuf)是谷歌开源的一种数据传输协议,类似于 XML、JSON 等技术,用于结构化的数据序列化、反序列化...

2024-01-29 11:50:36 488

原创 从前端开发的视角来搭建本地 java 开发环境

从前端开发的视角来搭建本地 java 开发环境,其实主要也就 java 环境、maven 包管理工具、IntelliJ IDEA 开发工具这3个方面,对应前端中的 nodejs 环境、npm 包管理工具、vscode 开发工具。java 环境jdk8 官方下载地址:https://www.oracle.com/java/technologies/downloads/#java8,下载解压后,先在环...

2024-01-28 23:37:47 454

原创 vue插槽slot、slot-scope、v-slot的区别以及嵌套插槽的使用

可以将 slot 理解成一个占位的东西,我们提前在模板中放置一个占位的标记,当其他地方要使用模板时就可以通过标记再传进来具体的内容,这样就可以实现更强的复用能力。slotslot 在英语中作为名词时表示:(可投入东西的)狭长孔,狭槽;(在一系列事件中为某事安排的)时间,空档;(组织、团体等中的)位置,职位。在 vue 中翻译成插槽:vue 实现了一套内容分发的 API,这套 API 的设计灵感源自...

2024-01-21 23:57:42 4229

原创 一篇文章搞懂TypeScript

TypeScript 是 JavaScript 的超集,一方面给动态类型的 js 增加了类型校验,另一方面扩展了 js 的各种功能。原始数据类型字符串数值布尔nullundefinedSymbolBigIntlet str: string = '周小黑'let age: number = 18let beautiful: boolean = truelet n: null = nullle...

2024-01-08 23:55:27 867

原创 JavaScript难点:原型、原型链、继承、new、prototype和constructor

我们可以通过将一个构造函数的 prototype 指向另一个构造函数来实现继承父类的属性和方法,但是往往还会额外加一个 Child.prototype.constructor = Child,这是因为直接通过 prototype 修改了原型后,当前子类原型里的 constructor 实际上还是指向的父类构造函数(因为 prototype 本来就是父类的),这不就和我们上面说的 “原型对象 prototype 中有 constructor,指向该原型的构造函数” 相矛盾了。实例对象的原型属性可以用。

2023-12-16 10:19:59 941

原创 手写JSON.parse和JSON.stringify

搞懂了有限状态机,手写各种解析器都不在话下,主要区别也就是考虑怎么去设计各种状态流转。如果不理解有限状态机建议先去阅读:用有限状态机实现一个简版html解析器,然后再来阅读本文就很容易理解了。手写JSON.parse有两种实现方式,第1种初级版没啥难度,第2种利用状态机自己去解析字符流,需要先学习下编译原理相关的知识,否则理解起来可能有点蒙。初级版本 JSON parse直接通过 eval 函数实...

2023-11-29 22:06:49 506

原创 用有限状态机实现一个简版html解析器

FSM(Finite State Machines) 有限状态机,也叫有限状态自动机,是为研究有限内存的计算过程和某些语言类而抽象出的一种计算模型,它拥有有限个数量的状态,每个状态可以迁移到零个或多个状态,输入字串决定执行哪个状态的迁移。有限状态机有什么用代码编译器在工作时就需要通过词法分析、语法分析、语义分析来得到 AST(Abtract Syntaxt Tree) 抽象语法树。需要先词法分析拿...

2023-11-28 23:16:53 1002

原创 用uniapp开发跨端应用开发打包发布完整指南

一、uni-app项目介绍用uni-app开发多端项目,一套代码可同时打包出各端小程序、h5和app,uni-app支持通过 HBuilderX可视化界面 和 vue-cli命令行 两种方式创建项目,下面示例项目采用 HBuilderX可视化界面 的方式创建,cli项目可参考uni文档,大部分流程都是通用的。项目结构:├── common api文件 ├── compone...

2023-11-21 22:42:31 343

原创 用vitepress搭建文档网站踩坑记录

之前用 vuepress2 + vite 成功搭建了一个博客网站,这不 vue3 的文档改用 vitepress 搭建的,看着挺好看的,就想着也来折腾折腾搭建一个工作的文档网站。配置目录名叫 .vitepress注意不要走错频道了,这不是 vuepress 的片场,刚开始我就新建成了 .vuepress,配置了半天导航、侧边栏咋就是没效果呢,明明跟 Getting Started 上教的代码一毛一...

2023-11-17 12:02:00 179

原创 用vuepress2搭建自己的github网站

最近打算自己做一个博客网站记笔记,然后部署到github上,最终选择了vuepress的最新版本v2(使用的是vue3和TypeScript开发,默认使用Vite作为打包工具)。一、根据官方示例搭建项目直接根据官方文档先初始化项目就行了,注意文档的版本,v1和v2还是有很多地方不同的。二、将代码推到github上最终我们是要部署到github上,所以直接在github上新建一个自己的项目仓库就好了...

2023-11-16 22:43:16 104

原创 wordpress插件开发踩坑记

想要使用 REST API 需要自己额外安装插件:WordPress REST API,现在 WordPress 5.0以上的版本已经默认支持 REST API了,不需要额外去安装插件。新站首次用 Postman 去 访问 REST API 接口,如:http://cafe123.cn/wp-json/wp/v2/posts,会发现返回的是 404,需要自己在管理后台将:设置-固定链接-常用设置,...

2023-11-16 22:41:34 200

原创 webpack代理proxy配置

前端项目开发中我们经常会用到 proxy 代理来解决接口跨域问题,通常是在 webpack.config.js 或 vue.config.js 或 vite.config.js 中配置:devServer: { proxy: { '/api': { target: 'http://localhost:3000', changeOrigin: true,...

2023-11-16 22:40:40 311

原创 windows中cmd和PowerShell批处理命令

之前在 Git 批量删除本地分支,有用到 Linux 或 MacOS 下的批处理命令 xargs:git checkout mastergit branch | grep -v 'master' | xargs git branch -D因为这个命令中的 grep、xargs 本身是 Shell script,在 windows 中的 cmd 和 PowerShell 中是不能用的。那如果想要在...

2023-11-16 22:40:05 237

原创 开发一款wordpress插件并发布到官方插件库完全指南,小白也可以

wordpress是一款很流行的开源博客程序,全世界有很多网站都在使用wordpress,程序员们也喜欢拿来做自己的技术博客,对于自己不满意的地方,那肯定也需要自己动手来修改了,下面就介绍从开发到发布一个wordpress插件的完整流程。

2023-02-24 00:23:18 689

原创 用 es6 的 class 类单例模式封装 canvas 环形进度条

项目中需要一个请求进度效果,尝试了下自己用 canvas 来绘制一个环形进度条,动效直接用的休眠函数加随机数来模拟。用到了 es6 里的 class 类,用单例模式的懒汉模式来实例化对象,不像 Java 这种纯面向对象的语言,写着还是有点别扭

2023-02-23 22:57:38 178

原创 用reduce高阶函数组装查询表单分隔字符数据

查询表单,一次输入多个参数,一般是从网站或者 excel 中复制,要求前端用空格、逗号或者回车切割参数,传给后端。这个需求也很常见,之前是先用 split 分隔成数组,再用 map 遍历去掉首尾空格,最后再用 filter 来过滤下空值,但是这样需要遍历两次,如果想只用一个 map 实现,那还得额外定义个变量来储存数据。

2023-02-23 00:50:59 87

原创 toFixed和Math.round既不是四舍五入也不是银行家舍入法

JavaScript 的 toFixed 方法使用定点表示法来格式化一个数值,数字.toFixed(要保留几位小数),参数为小数点后数字的个数,介于 0 到 20(包括)之间,默认 0,返回值为使用定点表示法表示给定数字的字符串,该数值在必要时进行四舍五入,不足位数时会直接用 0 来填充小数部分

2023-02-23 00:13:34 552

原创 vue项目中webpack-dev-server的open和host0.0.0.0配置冲突

一个比较老的公司项目,webpack 用的 v3 版本,为了实现localhost、127.0.0.1和本机ip可以同时访问,webpack的devServer里的 host 我们一般会设置成 0.0.0.0,这样本机所有 ipv4 地址都可以实现访问。比如我们要将本地运行的前端项目,分享给公司的后端、产品、测试…预览效果,如果 host 直接设置的 localhost,运行后打开的地址 http://localhost:8080,直接分享给别人是没法打开的。

2023-02-16 23:44:55 1750 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除