- 博客(29)
- 收藏
- 关注
原创 cursor和deepseek的各模型性价比分析及推荐
⚠️ 注意:Cursor 自有模型(Grok、Composer)在 Cursor 订阅中包含一定额度,实际使用成本可能更低。
2026-08-18 16:06:44
310
原创 已有项目开发流程的ai提示词
如果你的目标是,不建议准备几十个零散 Prompt,而是建立一套。以后无论是 Cursor、Claude Code 还是 ChatGPT,都可以复用。下面这套是比较推荐的,按真实开发顺序排列。
2026-07-09 10:10:57
261
原创 Ai驱动的完整项目开发流程
如果把这套流程沉淀为固定模板,开发一个中等规模的管理系统或移动 App,通常可以比传统开发方式节省 50%~80% 的时间,而且代码质量和文档完整性也会更高。Claude Code:作为主力开发工具,负责前端页面、NestJS 后端、重构和大规模代码修改。GitHub Actions/GitLab CI:让 AI 自动执行代码检查、测试、构建和发布。ChatGPT GPT-5.5:产品分析、PRD、接口设计、代码评审、复杂问题分析。Codex:自动生成单元测试、接口测试、E2E 测试,定位和修复 Bug。
2026-07-09 09:50:15
756
原创 AI 开发技巧(实战技巧)
代码评审自动化:完成编码后立即要求 AI 用 java-code-reviewer 或 vue-best-practices 进行规范与漏洞评审,并要求产出「问题清单 + 修复 PR 描述」。· 结构化提示词公式:角色 + 任务 + 输入材料 + 产出格式 + 约束 + 验收标准,避免开放式短句。· 指定输出格式:明确告诉 AI 用「表格」「JSON」「Markdown 标题层级」「代码块」等结构化输出,便于后续处理与评审。避免让 AI 直接给「可能修复方案」
2026-07-09 09:32:30
337
原创 ts中的特殊符号说明并举例,如 ?. 、?:、??等
符号名称用途?可选链安全访问嵌套属性??空值合并??仅对 null/undefined 生效!非空断言断言值不为 null/undefined??空值赋值仅在 null/undefined 时赋值||=或赋值在假值时赋值&&=与赋值在真值时赋值...展开/剩余合并或收集数据keyof索引查询获取类型的所有键typeof类型查询获取变量的类型infer类型推断条件类型中推断类型交叉类型合并多个类型as类型断言强制转换类型readonly只读防止属性被修改私有字段真正的类私有成员。
2026-06-10 15:14:46
195
原创 ts中的特殊符号 ?. ?:说明
(可选属性/参数)、?(空值合并),以及三元条件运算符?:(三元条件运算符):语法为 condition?.(可选链操作符):安全访问嵌套属性/方法/索引,若链中任一值为 null 或 undefined,则短路返回 undefined。(空值合并操作符):仅当左侧为 null 或 undefined 时返回右侧默认值(不对 0、‘’、false 触发)。(源自 ES2020),?:(可选属性/参数):在类型注解或函数参数中声明某项可省略(隐含 | undefined)。
2026-06-08 15:52:20
193
原创 chatGPT-4 vs chatGPT-5 在前端开发场景下的差别与实际价值
【代码】chatGPT-4 vs chatGPT-5 在前端开发场景下的差别与实际价值。
2025-08-09 10:32:03
600
原创 AI 时代前端发展路径图(2025-2028)
阶段3:高价值/不可替代型前端(18个月以上)阶段2:AI应用型前端(6~18个月)阶段1:AI提效型前端(0~6个月):不仅写页面,还能做 AI 产品前端。:进入 AI 也难以替代的高价值赛道。:用 AI 辅助写更快、更优的代码。
2025-08-09 10:07:26
1382
原创 有ai了,前端程序员后期的发展方向
有了 AI 之后,前端程序员的发展方向不会消失,但路径和侧重点会明显变化。AI 既会让一部分低门槛的前端工作被自动化取代,也会为前端带来新的价值空间。这样既能在 AI 时代减少被替代风险,又能让你的工作单价上涨。:从“写页面”转向“做智能交互产品”:不只会写前端,而是能做一体化交付。:进入门槛高、不可轻易被替代的领域。:让数据以更直观的方式呈现。
2025-08-09 09:35:06
1033
原创 如何在审查元素时,悬浮hover样式鼠标移开消失时,也可查看代码
注意3个顺序不要错,即可看Elements里消失的代码了。3、勾选Emulate a focused page。1、鼠标点击input框。2、勾选:hover。
2024-12-13 16:28:37
366
原创 js数组对象排序
方法一:字符串compare(prop) { return function(obj1, obj2) { let val1 = obj1[prop]; let val2 = obj2[prop]; if (!isNaN(Number(val1)) && !isNaN(Number(val2))) { val1 = Number(val1); val2 = Number(val2); } if (val1 < val2)
2022-03-08 10:35:48
268
原创 js 对象转数组
let options = Object.entries(res.data.obj); for (let [k, v] of options ) { this.options .push({ value: k, label: v }); }
2021-05-24 12:23:54
370
原创 JS获取对象数组中的id的最大值或最小值
this.Val = Math.max(...this.options.map(a => a.id));
2021-05-22 09:15:38
1068
原创 js 判断对象是否有指定的键
hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。if (options.data.hasOwnProperty('token')) {return}
2021-05-21 14:15:46
1105
1
原创 为js数组中每个对象添加属性
list.map((item, index) => { curPageData.push( Object.assign({}, item, { show: false }) ); }); console.log(curPageData);
2021-03-05 09:23:44
1632
2
原创 vue js数据扁平结构转树状结构
//方法一let treeMapList = res.data.reduce((memo,current)=>{memo[current[“id”]] = current;return memo;},{});console.log(treeMapList);this.tree_list = res.data.reduce((arr,current)=>{let parent_id = current.parent_id;let parent = treeMapList[paren
2021-02-02 12:55:27
400
原创 uniapp按扭两种方式
方式一:<button type="primary" plain="true" size="mini" class="btn" @click="toActArrive(item.id)">{{ item.arrived == 1 ? '已交付' : '交付' }}</button>方式二:<button v-if="item.arrived == 1" disabled="true" type="primary" plain="true" size="mini" clas
2021-02-02 12:54:55
767
原创 Js数组对象循环遍历总结
let treeList = []; //treeList = res.data.map(item => item.id); //map返回item.id treeList = res.data.forEach(item => item.id); //forEach不返回item.id,只打印 treeList = res.data.forEach(item => { console.log(item.id); });
2021-02-02 12:54:25
3388
原创 2020年8月github上vue部分程序stars排名
vue 169kvue-element-admin 58.1kElemeFE/element 46.6kionic-framework 41.4kvue2-elm 34kvuetify 26.8Kuni-app 24.2kiview 23.4kmint-ui 15.9kquasar 15.8kiview-admin 15kvue-next 14.6kvant 14.5klitemall 13.8kelectron-vue 12.7kbootstrap-vue 12kvue-a
2020-08-05 10:39:20
390
原创 自定义element-ui的table表格头header字体颜色及背景色
<el-table v-loading="listLoading" :data="list" element-loading-text="正在查询中。。。" border fit highlight-current-row stripe :header-cell-style="tableHeaderColor" //加入这行 >methods: {// 修改table header的背景
2020-07-08 15:41:37
2083
原创 css3 线性渐变
.line { background: linear-gradient(to top, rgba(204, 204, 204, 0), rgba(204, 204, 204, 1), rgba(204, 204, 204, 0)); width: 1px; height: 30px;}
2020-07-07 16:20:02
332
原创 解决element-ui中Table表格序号索引在分页时只在当前页面排序
在需要排序的表格定义:index=“indexMethod”<el-table-column label="序号" type="index" :index="indexMethod" align="center" show-overflow-tooltip width="60px" />methods中添加代码indexMethod(index) { return (t
2020-07-03 18:17:44
1412
原创 git教程
一、第一次用:上传本地项目到远程仓库1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库git init2、把所有文件添加到暂存区git add .或用git add --all3、文件提交到仓库,并说明git commit -m ‘first commit’4、关联到远程库git remote add origin https://github.com/git用户名/项目名.git5、获取远程库与本地同步合并(可选)git pull --reba
2020-07-03 15:29:45
205
原创 uniapp三种请求方法示例
_request() {uni.request({url: this.websiteUrl + ${stringListApi},method: ‘POST’,dataType: ‘json’,data: {},success: res => {this.stringList = res.data.data;console.log(this.stringList);},fail: err => {console.log(err);},complete: () =>
2020-06-29 11:30:50
6481
1
原创 vue组件传值的三种方式
1、父传子父:<child :inputName="name"></child>子:// 接受父组件的值props: {inputName: String,required: true}或简写成 props:[‘inputName’]2、子传父父:<child @childByValue=“childByValue”>methods......
2020-04-27 10:36:36
257
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅