- 博客(61)
- 收藏
- 关注
原创 Egg.js项目创建
一、Egg.js概叙 Egg.js是一个基于Koa的企业级Web应用框架,由阿里巴巴团队开源,旨在通过约束和规范来降低开发和维护成本,它继承了Koa的高性能优点,并加入了一些约束与开发规范,以规避Koa框架本身开发自由度过高的问题2。它适用于企业级应用开发,提供了丰富的插件和中间件,涵盖缓存、安全、认证、路由等多个方面,可以有效减少重复性编程,提高开发效率。请注意,Egg.js的目录结构可能会有所变化,具体取决于项目的需求和版本的不同。二、项目创建 运行以下命令。以下是项目的目录结构。
2025-04-23 10:39:52
368
原创 express项目部署到Linux服务器中
在项目根目录下运行npm install 5.启动你的Express应用。1.确保你的Express项目已经构建完成,并且可以在本地环境正常运行。查看列表: pm2 list- 显示所有 PM2 托管的应用列表。启动: pm2 start app.js- 启动并保护您的应用。监控应用: pm2 monit- 查看应用的资源使用和日志。重启应用: pm2 restart <appName>查看日志: pm2 logs- 获取应用的实时日志。如果你想让你的应用作为一个后台服务运行,你可以使用。
2025-04-23 10:38:38
202
原创 express项目搭建
例如,在 routes 文件夹中创建一个名为 user.js 的文件,并添加以下代码以处理用户相关的请求。创建路由文件,在项目根目录下创建一个名为 routes 的文件夹,在 routes 文件夹中创建一个名为 index.js 的文件,并添加以下代码以处理根路径的请求。创建名为models的文件夹用于进行数据库操作,列入在models文件夹中创建一个User.js的文件表示对项目的用户进行数据库操作。在项目根目录下创建一个名为 app.js 的文件,并添加以下代码以创建基本的 Express 服务器。
2025-04-23 10:35:42
407
原创 vue3项目构建流程
运行命令pnpm install -D eslint-plugin-prettier prettier eslint-config-prettier下载相关依赖,创建.prettierrc.json文件配置相关规则,创建.prettierignore用于配置不需要校验的文件。执行pnpm i eslint -D安装eslint依赖,然后执行命令npx eslint --init生成配置文件.eslint.cjs或者eslint.config.js之后在rules配置中自定义校验规则。
2025-04-23 10:30:29
239
原创 springboot常用注解
导入组件,例子@Import({User.class,DBHelper.class}),给容器中自动建出这两个类型的组件,默认组件的名字是全类名。导入spring的配置文件使其生效,例如,可以导入beans.xml文件使其生效。与@Configuration配合使用,标注在方法上,表明是配置类中的组件。条件装配:满足Conditional指定的条件,则进行组件注入。开启组件类的配置绑定功能,并将这个组件类自动注入到容器之中。标注在类上,表明该类是springboot中配置类。
2025-04-23 10:24:08
202
原创 react 18 基础教程
useEffect清除副作用,比如在useEffect中开启了一个定时器,我们想在组件卸载时把这个定时器再清理掉,这个过程就是清理副作用,例子如下。当访问的是一级路由时,默认的二级路由组件可以得到渲染,只需要在二级路由的位置去掉path,并设置index属性为true即可。在react中可以通过在{}中写入js表达式来执行js代码,所以可以通过如下手段来执行来实现列表的渲染。useEffect副作用函数的执行时机存在多种情况,根据传入依赖项的不同,会有不同的执行表现,
2024-09-03 15:43:48
1360
1
原创 vue2和vue3的区别
proxy的优势:不需要像Object.definedProperty()的那样遍历每一个属性,有一定的性能提升proxy可以理解为在目标对象之前架设一层“拦截”,外界对该对象的访问都必须通过这一层拦截。遍历每一个虚拟节点,进行虚拟节点对比,并返回一个patch对象,用来存储两个节点不同的地方。在vue3中采用组合式API,将同一个功能的代码集中起来处理,使得代码更加有序,有利于代码的书写和维护。在vue2中v-for的优先级高于v-if,可以放在一起使用,但是不建议这么做,会带来性能上的浪费。
2024-09-03 15:31:23
635
原创 前后端滑块校验
ianai-captcha 验证码整体分为 生成器(ImageCaptchaGenerator)、校验器(ImageCaptchaValidator)、资源管理器(ImageCaptchaResourceManager) 其中生成器、校验器、资源管理器等都是基于接口模式实现 可插拔的,可以替换为自定义实现,灵活度高。具体可以看该插件的作者。
2024-09-03 15:27:19
530
原创 react项目中使用redux的实例
当在React项目中使用Redux,你需要安装redux和react-redux库。下面是一个简单的示例,展示了如何在React项目中集成Redux:在项目的根目录下,创建一个名为store.js的文件,并编写以下代码:3.创建reducers:在项目中创建一个名为reducers.js的文件,并编写以下代码:在上面的代码中,我们定义了一个名为rootReducer的纯函数,并根据action的类型更新state。在项目中创建一个名为actions.js的文件,并编写以下代码:在上面的
2024-09-03 15:21:36
294
原创 react的hooks作用讲解
有类似于类组件中的生命周期之类函数的作用,用于处理组件中的副作用操作,比如数据获取、DOM操作等。不传参数时所有的更新都会触发,传递空数据为参数时仅在挂载和卸载的时候执行,传递一个值时仅在这个值更新时执行。没有hooks之前,类组件通过props进行父子组件之间的数据传输,有了hooks之后函数组件通过useContext进行父子组件之间的数据传输。useReducer 是 useState 的升级版本,用来践行 Flux/Redux 的思想,可以使用useReducer来代替Redux。
2024-09-03 15:15:40
467
原创 外部浏览器中H5跳转微信小程序方法
1.在需要跳转的小程序的小程序管理后台中通过工具直接生成, 该方法生成的URL Scheme不能实时指定跳转小程序的页面也不能向小程序传递参数。2.如果需要指定跳转小程序的页面或者需要向小程序传递参数, 则需要使用 服务端接口 的方法来获取URL Scheme。H5网页通过URL Scheme进行跳转。URL Scheme的获取方法有两种。
2024-09-02 16:00:02
514
原创 springboot常用注解
导入组件,例子@Import({User.class,DBHelper.class}),给容器中自动建出这两个类型的组件,默认组件的名字是全类名。导入spring的配置文件使其生效,例如,可以导入beans.xml文件使其生效。与@Configuration配合使用,标注在方法上,表明是配置类中的组件。条件装配:满足Conditional指定的条件,则进行组件注入。开启组件类的配置绑定功能,并将这个组件类自动注入到容器之中。标注在类上,表明该类是springboot中配置类。
2024-09-02 15:55:42
408
原创 Springboot:拦截器和过滤器
HandlerInterceptor是SpringMVC中的拦截器,它拦截的是Http请求的信息,优先于MethodInterceptor。前者拦截的是请求的地址,而后者是拦截controller中的方法。项目的开发中,在某些情况下,我们需要对客户端发出的请求进行拦截,常用的API拦截方式有Fliter,Interceptor,ControllerAdvice以及Aspect。可以获得Http原始的请求和响应信息,也拿得到响应方法的信息,但是拿不到方法响应中的参数的值。拦截器:Interceptor。
2024-09-02 15:54:29
464
原创 解决 el-table 多选框,选中后,翻页再回来选中失效问题
1. 在 el-table 中增加 row-key="id"2. 在多选框列中增加 reserve-selection。
2024-09-02 15:50:08
475
原创 关于element 的下拉选项框el-select提供拉到底加载下一页数据
element中下拉选项框el-select提供拉到底加载下一页数据。2、在下拉选择框新增自定义指令。1、新增一个自定义指令。
2024-09-02 15:49:23
480
原创 vue跳转不存在路由返回404页面方法
if(to.matched.length === 0){ //未匹配到的时候跳转到404页面。next() //匹配到的时候跳转相应的路由。vue页面跳转不存在的路由返回404页面,我这里有两种方法。通过配置路由,当匹配不到路由时,默认跳转到404页面。通过使用路由钩子函数。
2024-09-02 15:47:03
363
原创 vue跳转跳转相同页面传不同的参数无效的问题
vue构建的应用是存在生命周期的。因为在加载相同路由的组件时已经走过了created()和mounted()等生命周期,所以再次跳转相同页面是不会再触发生命周期的路由钩子函数,传递的参数也就没有用了。所以为了解决这个问题。我们可以创建一个用于路由跳转的中间页。再经过中间页跳转到我们最终想要跳转的页面。这样就不会出现上述我们谈论的问题了。
2024-09-02 15:45:53
581
原创 uniapp分包使用
微信小程序的打包上传的大小是2MB。一般情况下对于小程序的开发是够用了,但是如果要开发的小程序比较大,功能点比较多的情况下。2MB的大小限制可能就不太够了,这个时候就需要对小程序进行分包的处理了。pages中代表的是主包,可以在它的同级目录下创建分包。分包后的页面跳转也如同主包一样.例如我想跳转到分包pagesA下的indexA页面。
2024-08-29 15:05:57
265
原创 微信小程序判断当前是否最新版本并且更新
/ wx.getUpdateManager接口,可以获知是否有新版本的小程序、新版本是否下载好以及应用新版本的能力,会返回一个UpdateManager实例。// 检查小程序是否有新版本发布,onCheckForUpdate:当小程序向后台请求完新版本信息,会通知这个版本告知检查结果。// 获取小程序更新机制的兼容,由于更新的功能基础库要1.9.90以上版本才支持,所以此处要做低版本的兼容处理。// 静默下载更新小程序新版本,onUpdateReady:当新版本下载完成回调。// 下载新版本,重启应用。
2024-08-29 15:00:57
895
原创 uniapp中echarts的简单使用
所以需要调用这个this.$refs.chart.setOption(this.option,true),表示数据不默认合并。要注意通过接口获取数据然后直接改变option配置项中的数据时,图表是不会更新的。
2024-08-29 14:59:09
334
原创 npm 安装中的 i、-g、--save、--save-dev、-D、-S的区别
D则是项目在开发阶段需要的依赖,例如es6转es5的依赖,我们就只需要用它来获取转译后的代码,但在项目运行过程中并不需要这些。-D 与 --save-dev 的简写,安装包写入 devDependencies 中。-S 与 --save 的简写,安装包信息会写入 dependencies 中。-g 是全局安装,不带 -g 会安装在个人文件夹。-S安装的依赖是项目在实际运行时也需要的依赖。i 是 install 的简写。
2024-08-29 14:57:06
426
原创 Redux笔记
Redux 就像是作者自己的介绍,它不会为你提供任何的东西,它不会告诉你如何做路由,它只专注于应用程序状态,是一个 JavasSript 的状态容器,所有的状态的变化都是当前状态和 Action 共同的作用结果。对于view来说,不用关心数据是怎样变化,只需要在 view 层面等待 store 通知自己数据发生变化,然后把数据渲染成页面即可。
2024-08-29 14:56:26
294
原创 小程序页面跳转传输数据太多被截断的解决方法
小程序url传参如果是对象的话需要先用JSON.stringify()转换一下,接受页面在用JSON.parse()再转换回来。这时可以再添加另一个API:encodeURIComponent(obj) 和 decodeURIComponent(options.obj),在encodeURIComponent之前要用JSON.stringify()先转换数据,decodeURIComponent之后再用JSON.parse()转换回来。
2024-08-29 14:52:30
496
原创 js的时间处理函数
/获取当前月份(0-11,0代表1月) // 所以获取当前月份是myDate.getMonth()+1;myDate.setMilliseconds() //设置 Date 对象中的毫秒 (0 ~ 999)。myDate.setMinutes() //设置 Date 对象中的分钟 (0 ~ 59)。myDate.setSeconds() //设置 Date 对象中的秒钟 (0 ~ 59)。//获取完整的年份(4位,1970-?//获取当前秒数(0-59)
2024-08-29 14:42:08
323
原创 正则表达式相关笔记
使用方括号 [ ] 包含一系列字符,能够匹配其中任意一个字符。用 [^ ] 包含一系列字符,则能够匹配其中字符之外的任意一个字符。同样的道理,虽然可以匹配其中任意一个,但是只能是一个,不是多个。表达式可匹配[ab5@]匹配 "a" 或 "b" 或 "5" 或 "@"[^abc]匹配 "a","b","c" 之外的任意一个字符[f-k]匹配 "f"~"k" 之间的任意一个字母[^A-F0-3]匹配 "A"~"F","0"~"3" 之外的任意一个字符。
2024-08-28 16:44:42
411
原创 uniapp返回上一页并刷新数据方法
3.let beforePage=pages[pages.length-2],将上一页赋值给beforePage。2.pages[pages.length-1],为当前页。pages[pages.length-2]为上一页。调用上一页中的onload()方法。1.getCurrentPages()获取当前页面的页面栈,是个数组。
2024-08-28 16:36:00
1109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人