- 博客(47)
- 收藏
- 关注
原创 Cursor+Devbox 纯AI实行todoList功能
后端代码:https://github.com/susanliy/todoList-cursor-node。前端代码:https://github.com/susanliy/todoList-cursor-vue。如果是复杂的项目 不太能想视频说说得那么轻松 还是需要对代码上下文有理解,有一定的技术基础。链接:https://jgbboqtokdxl.sealoshzh.site/对于特定复杂的ui实现程度有限,如果是不需要特定ui的话,实现起来效果不错。提示词的编写需要一定的时间成本,灵活性缺乏。
2024-12-23 13:59:59
224
原创 VS Code Copilot 与 Cursor 对比
优点:功能强大,插件丰富,AI能力出色,社区活跃,多IDE支持,价格相对合理。缺点:插件过多可能影响性能,部分高级功能需要付费。优点:独特的用户交互设计,出色的代码补全体验,Composer功能潜力大,支持VS Code插件。缺点:价格较高,高级功能需使用Cursor自有模型,部分复杂需求处理能力有限。总结与建议追求功能全面和成熟稳定的体验,选择 VS Code Copilot。追求独特交互体验和尝鲜,项目复杂度不高并且不差钱,选择 Cursor。
2024-12-20 11:35:59
4808
原创 structuredClone()与 lodash.cloneDeep与 JSON.parse & JSON.stringify()拷贝对比
structuredClone()与 lodash.cloneDeep与 JSON.parse & JSON.stringify()拷贝对比。
2024-12-03 17:10:22
324
原创 整理git上的模板框架
技术栈的app框架 功能:基于 uni-app,一端发布多端通用,目前已经适配 H5、微信小程序、QQ小程序、Ios。功能:实现登入点击文字和拉动滑块的登录校验,具体的交互看这篇。后台管理平台(用于日常练手的项目,存放一些封装的组件)taro3 框架小程序跨端平台。功能:前台官网的网站项目模板。
2024-03-28 14:22:21
514
原创 在企业微信里面添加h5页面 进行登录授权
1.需求:在企业微信里面添加h5页面 进行登录授权,获取到用户的code,进行登入id的验证。在企业微信内部进行配置,拿到appid,redirect_uri,agentid参数。② 直接将授权的操作写在首页中,在首页进行授权,然后再跳转首页(我用的是这种方式)① 有一个页面用于授权,然后在跳转首页。
2024-03-27 14:27:27
3297
1
原创 font-weight元素失效
原因:由于在字上运用了字体,然后对于这个字体添加粗细失效了,字体包很大有10mb,使用导致了在刚刚进入页面的时候字体显示正常,等字体文件加载完成之后,font-weight元素失效。问题:在h5 的页面上无论设置font-weight多少的值都没有效果;手机上一开始文字有显示加粗的效果,可是等资源加载完成之后就会使字体粗细这个效果失效。解决方案:移除字体,直接在字上面添加font-weight元素。
2024-03-27 14:06:39
1293
原创 h5 tailwind 使用rounded类导致安卓端样式显示有问题
问题: h5 页面使用了tailwindcss插件,运用了rounded 类,发现在ios和安卓上显示不一致,安卓上样式乱了。由于tailwindcss里面的默认元素的默认的单位为rem,导致了在安卓手机端尺寸有误。将默认得rem单位,改为px的单位。
2024-03-27 13:58:51
387
原创 vite 安装tailwindcss失效
需求:在vite5 + vue3 + ts中安装tailwindcss。在mian.ts 里面导出 style.css 文件 就可以了哈。问题:按照tailwindcss的。进行安装,可是一直不生效。
2024-03-12 16:50:37
1003
1
原创 vscode 设置vue3 通用页面模板
prefix:定义了在代码编辑器中触发该代码片段的前缀,这里设定为 “Vue3.2+” body:定义了代码片段的主体部分,它是一个数组,包含多行模板代码 description:对该代码片段的描述。2.在vue文件中输入 “Vue3.2+”(会有自动提示) 按下 Tab 键,就会自动插入这段模板代码。你可以根据需要自行修改和完善这个模板。1.在项目的 .vscode 目录下创建一个名为 vue3.2.code-snippets 的文件,它是一个 JSON 格式的代码片段文件。
2023-11-20 10:04:35
1245
原创 pc端与flutter通信失效, Method not found
报错情况描述:pc端与flutter通信,ios端能实现通信,安卓端通信报错。报错内容:安卓端报错。
2023-08-09 18:23:28
970
原创 vue-cli3项目优化
*原理:**如果一些第三方模块没有AMD/CommonJS规范版本,可以使用 noParse 来标识这个模块,这样 Webpack 会引入这些模块,但是不进行转化和解析,从而提升 Webpack 的构建性能 ,例如:jquery 、lodash。我们使用 DllPlugin 将不会频繁更新的库进行编译,当这些依赖的版本没有变化时,就不需要重新编译。**原理:**有些时候,如果所有的JS文件都打成一个JS文件,会导致最终生成的JS文件很大,这个时候,我们就要考虑拆分 bundles。
2023-08-04 16:03:03
1758
原创 算法--辗转相除法
考题出处:https://leetcode.cn/problems/greatest-common-divisor-of-strings/submissions/+ t(t 自身连接 1 次或多次)时,我们才认定 “t 能除尽 s”。返回 最长字符串 x,要求满足 x 能除尽 str1 且 x 能除尽 str2。辗转相除法是以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数的计算公式。7 / 5 = 1 (余2)5 / 2 = 2 (余1)2 / 1 = 2 (余0)
2023-07-07 16:29:14
695
原创 文心一言vs通义千问 之前端文件夹命名
今天心血来潮想试试国内百度和腾讯的AI在解决前端难题–文件命名方面的效果。综上,是百度会更贴近一些哈。大伙有什么命名的好工具嘛?
2023-06-30 09:48:12
290
原创 前后端实现:行为验证码---文字点选
④ 验证数据随表单提交到后台后,后台需要调用captchaService.verification做二次校验。git地址:https://github.com/susanliy/point_captcha。后端代码逻辑:https://gitee.com/anji-plus/captcha。最近接到一个新的需求,由于客户是内网,你能使用腾讯的验证码了,需要改为前后端实现。⑤ 第4步返回校验通过/失败到产品应用后端,再返回到前端。③ 用户提交表单,前端将第二步的输出一同提交到后台。具体的代码已经提交git。
2023-06-25 17:17:39
1250
1
原创 vite优化
优化真的很费时又不能确保一定能有很飞跃的效果,在不断摸索中前进~~1.使用 yarn 在 package.json 内配置(推荐)2、vite中去使用:vite.config.ts中配置。2.使用 npm,在电脑 host 文件加上如下配置即可。gzip 与 brotli 在 nginx 内的配置。插件进行进行代码体积分析,从而优化你的代码。在需要的组件内加载echarts,绘制图表。
2023-06-25 16:38:41
750
原创 升级vite4 报错
将插件 “vite-plugin-theme”: “^0.8.1” 改为 “vite-plugin-theme”: “git+https://github.com/tt-sevth/vite-plugin-theme.git”,另外可以把预加载卸载了,因为vite3版本之后就内置了预加载功能。vite-plugin-theme插件造成的。vben vite2 升级vite4报错。
2023-05-26 16:23:49
1668
1
原创 vben 使用表格添加时间组件fieldMapToTime参数失效
因为整个项目的时间传输格式都是{endTime: “2023-05-10”,startTime: “2023-04-06”},所以直接干脆在useFormValues.ts 里面把格式写死输入。因为BasicTable中注册useForm的时候没有传入config导致useForm内部的validate拿不到props.fieldMapToTime。vben 使用表格添加时间组件fieldMapToTime参数失效。*要是大家有更好的方式,麻烦告知一下哈😊。
2023-04-26 09:35:47
826
2
原创 深拷贝与浅拷贝
虽然 JSON.parse(JSON.stringify()) 方法是一种简单易用的实现深拷贝的方法,但它并不完美,使用时需要注意其缺陷。用JSON.stringify将对象转成JSON字符串,再用JSON.parse()把字符串解析成对象,一去一来,新的对象产生了,而且对象会开辟新的栈,实现深拷贝。如果原始对象中存在循环引用,即对象的某个属性引用了该对象本身,使用该方法就会抛出 TypeError 异常。但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。
2023-04-11 10:11:39
380
原创 webpack Tree-shaking与Gizp的理解
一般来说,Gzip 压缩是服务器的活儿:服务器了解到我们这边有一个 Gzip 压缩的需求,它会启动自己的 CPU 去为我们完成这个任务。而压缩文件这个过程本身是需要耗费时间的,大家可以理解为我们以服务器压缩的时间开销和 CPU 开销(以及浏览器解析压缩文件的开销)为代价,省下了一些传输过程中的时间开销。服务器的 CPU 性能不是无限的,如果存在大量的压缩需求,服务器也扛不住的。根据这个原理,文件中代码的重复率越高,那么压缩的效率就越高,使用 Gzip 的收益也就越大。解压 Gzip,浏览器要花时间。
2023-03-20 17:08:58
292
原创 pc端实现屏幕自适应
然后把node_moudles下lib-flexible下flexible.js复制出来 引入就可以了,可以将lib-flexible卸载了。原文链接:https://blog.youkuaiyun.com/weixin_43957384/article/details/125184706。参考文档:https://blog.youkuaiyun.com/weixin_43957384/article/details/125184706。采用:postcss-px-to-viewport + lib-flexible。
2023-02-28 23:11:11
1382
原创 关于xss攻击解决方案
如何防止XSS攻击?1.innerHTML —xss攻击2.DOMParser().parseFromString()–性能最差,会受到xss攻击3.Range.createContextualFragment()–会执行内联的script js代码,这个方法尽量不要使用,不安全4.insertAdjacentHTML()–会受到xss攻击5.createContextualFragment ()–安全性能差,会受到xss攻击。
2023-01-11 15:45:49
3138
原创 更改 ant design vue 更改modal样式 vue3.0
antd中大部分组件的样式都可以使用/deep/直接修改,但modal这个组件有点特殊,用这个方法没有效果,最后用了以下方法:步骤:1.需要在外部包一个div ref=“globalModal”2.调用getContainer api :getContainer=“() => $refs.globalModal”3.利用deep 对于css进行样式更改...
2022-06-17 14:44:39
5088
4
原创 ant design vue 树形列表新增数据 图表不响应
问题:ant design vue 树形列表新增数据 数据打印有增加可是图表不响应需要的效果:const add = () => { const newData = { id: treeData.value?.length + 10, title: 'test', pid: 0, name: 2, change: true, key: treeData.value?.length + 10, }; treeData.value
2022-05-11 16:45:54
494
原创 ant 封装弹窗报错 Unexpected mutation of “visible“ prop.
封装ant 弹窗时报错:Unexpected mutation of “visible” prop.原因:大概就是说不允许在子级修改父级的数据。解决:更改前: <a-modal v-model:visible="visible" title="Basic Modal" @ok="handleOk">更改后: <a-modal :visible="visible" @update:visible="updateVisible" > const upd
2022-05-06 14:51:05
4711
原创 git push 报错
传送门,真实有用:1.https://juejin.cn/post/68449041931703418962.https://blog.youkuaiyun.com/weixin_40922744/article/details/107576748
2022-03-24 17:58:51
237
原创 vue3.0 vite axios挂载全局获取不到
在main.ts中代码:import axios from 'axios'app.config.globalProperties.$http = axios在普通页面去调用$http//获取当前组件的实例、上下文来操作router和vuex等import { getCurrentInstance } from 'vue'setup(){ const { ctx } = getCurrentInstance() as any console.log('ctx', ctx, ctx
2021-12-30 14:18:00
1448
1
原创 element-plus 自动导入导致message样式错误
项目采用的是element-plus自动导入<template> <el-button :plain="true" @click="open">Show message</el-button></template><script lang="ts">import { defineComponent, h } from 'vue'import { ElMessage } from 'element-plus'export defa
2021-12-29 11:26:06
3111
原创 vue3.0获取$refs
<login-pop ref="login"></login-pop> setup() { const login = ref() const openDialog = () => { login.value?.openDialog() } return { openDialog, login }//**记得把所需要的方法和属性值都要return** },
2021-12-24 17:26:25
7809
原创 vite element-plus自动导入 如何设置全局size ,index
在main.ts里面设置//element 全局默认大小为smallapp.config.globalProperties.$ELEMENT = { size: 'small',}原问题来源 : https://github.com/element-plus/element-plus/discussions/3829
2021-12-22 10:20:55
1901
2
原创 vue 3.0 keep-alive 失效 报错 Cannot read properties of null (reading ‘parentNode‘)
版本:vue “3.2.4”vue-loader “16.4.1”vue-router “4.0.11” <router-view v-slot="{ Component }"> <keep-alive> <suspense timeout="0"> <template #default> <component :is="Component" />
2021-12-07 17:17:02
5934
3
原创 自动滚动表格
需求:1.表格自动滚动,速度可调节2.鼠标移入的时候停止滚动template:<el-table...... ref="refTable" @mouseenter.native="mouseEnter" @mouseleave.native="mouseLeave" </el-table> data () { return { rolltimer: '', //定时任务 rollPx: 1,
2021-08-31 17:49:51
577
原创 cron 解析与反解析 + element
参考了 easy-cron-input 插件官网出来的效果图:封装成一个组件,代码如下:<template> <div> <el-form-item label="cron频率:" required> <div class="flexStart cron-style"> <el-select v-model="period" @change="periodChange" class="cron-perio
2021-06-25 16:50:30
1743
2
原创 Sortablejs+element表格实现拖拽
原理:把树形的结构数据在拖拽时转为列表,因为不允许跨级拖拽,只要把拖拽的同一级数据进行排列,结果发给后台,返回最新数据。2.可以自己手写表格,使用vue.draggable.next插件,参看。1.树形结构表格任意拖拽,点击保存之后才发送请求,大家可以看。1.每次拖动都进行保存,把数据发给后台之后在请求最新的数据。最开心的事情就是—这个bug我解决了,学无止境!2.列表的数据转树形的数据,排序完把顺序返回后台。3.把树形的表格的每一个父级看成一个组,然后参考。ps:插件用的不一样,不过功能是一致的。
2021-06-25 15:47:18
5386
21
原创 前端缓存学习
前端缓存浏览器缓存一、概述二、缓存过程分析参考:链接三.2.1.2Cache-Control的扩展如下图,设置了cahe-control:max-age=31536000,public,immutablemax-age表示缓存的时间是31536000秒(1年),public表示可以被浏览器和代理服务器缓存,代理服务器一般可用nginx来做。immutable表示该资源永远不变,但是实际上该资源并不是永远不变,它这么设置的意思是为了让用户在刷新页面的时候不要去请求服务器!啥意思?就是说,如
2021-06-25 15:35:50
592
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人