今日总结 2024-12-23
项目初始化
- 拉取代码与环境配置:
- 难点:Git 命令不熟悉,依赖文件定位不准,启动脚本含义不明。
- 解决办法:系统学习 Git 基础操作,如通过官方文档、优质的 Git 教程视频,反复练习克隆、分支切换等常用指令;使用编辑器的文件搜索功能,精准定位如
package.json
、package-lock.json
这类依赖文件来升级core-js
;参考项目文档或者开源项目社区里的说明,解读启动脚本用途,也可以在终端里逐行运行脚本,观察项目反应辅助理解。
- 插件确认:
- 难点:不清楚插件配置规则与微调方法。
- 解决办法:查阅
ESLint
和Vue - Official
插件的官方文档,了解基础配置参数的意义;参考开源项目里相似插件的配置案例,模仿并在本地测试效果;遇到问题时,去对应的插件 GitHub 仓库 Issues 板块搜索有无相似疑问及解决方案。
项目架构认知
- 目录与入口:
- 难点:陌生项目架构导致迷失方向,难定位关键文件。
- 解决办法:查看项目根目录下是否有
README.md
这类说明文档,一般会介绍项目架构;从入口文件出发,如main.js
,顺着代码里的import
语句反向追踪,梳理目录功能;尝试给关键目录添加简单注释,标注其大致用途,方便后续查找。
- 组件解析:
- 难点:理解 Vue 特有语法协同运作,以及样式模块化管理。
- 解决办法:深入学习 Vue 官方教程,做一些简单的 Vue 组件拆分、组合小练习,加深对组件嵌套、数据绑定等语法的熟悉度;研究 Vue 单文件组件的样式
scoped
标签原理,学习如何利用 CSS 预处理器(如scss
、less
)模块化管理样式,通过实践小型 Vue 项目掌握技巧。
- 配置文件:
- 难点:掌握配置参数作用,理解权限控制复杂逻辑。
- 解决办法:对于
settings.js
,每项配置参数修改后,观察页面变化,记录效果辅助理解;拆解permission.js
里的路由守卫代码,画出流程图,梳理不同路由场景下的权限判断走向,结合实际页面访问测试,加深理解。
- Vuex 结构:
- 难点:把握模块拆分粒度,组织各部分交互流程。
- 解决办法:先从简单的 Vuex 示例项目学起,模仿拆分模块思路;绘制 Vuex 模块交互的思维导图,梳理数据从组件触发
action
,经过mutations
修改状态,再通过getters
被获取的完整流程;在实践项目里不断尝试调整模块拆分,总结经验。
资源使用与管理
- 图标使用与原理:
- 难点:理解底层知识,如动态引入与打包原理。
- 解决办法:查找 webpack 官方文档里关于
require.context
的介绍及示例,学习资源动态引入;阅读svg-sprite-loader
的 README 文件,了解其工作流程,同时参考开源项目里的实际使用案例,跟着一步步搭建小 demo 实践。
- 样式资源管理:
- 难点:熟悉 Git 工作流,避免配置远程仓库出错。
- 解决办法:学习 Git 工作流相关的教程,模拟完整的项目开发流程,包含创建、删除仓库,推送拉取代码等操作;复制远程仓库链接时,多核对几遍,配置好后先尝试推送一个测试分支,确认无误。
登录页开发
- 表单校验:
- 难点:融合 Vue 响应式原理与正则表达式,把控校验触发时机。
- 解决办法:复习 Vue 数据响应式原理基础知识点,做一些简单的数据绑定小实验;利用正则表达式测试工具,先在线测试手机号、密码等正则表达式准确性,再整合进 Vue 项目;参考优秀的 Vue 表单校验开源项目,学习校验触发时机的设置技巧。
登录流程剖析
- 流程整合:
- 难点:理清多环节串联的异步操作与状态流转。
- 解决办法:用流程图工具画出整个登录流程,标注异步操作和状态变化节点;给关键代码添加日志输出,观察数据在各环节的流转情况;拆解流程,先单独实现并测试每个小环节,再整合起来调试。
Vuex 用户模块构建
- 模块重写:
- 难点:遵循模块结构规范,避免命名冲突与数据流向混乱。
- 解决办法:仔细研读 Vuex 官方规范文档,按照规范一步步重构用户模块;模块命名采用统一前缀或遵循既定命名规则,添加详细注释标注数据流向;测试时,通过 Vue Devtools 监控 Vuex 状态变化,及时发现问题。
跨域问题及代理解决
- 跨域成因与代理原理:
- 难点:抽象的同源策略与复杂代理通信关系难理解。
- 解决办法:阅读浏览器同源策略相关的技术文章,结合简单的前后端分离小项目,手动制造跨域场景观察现象;绘制代理服务通信关系图,从前端请求出发,描绘经过代理到后端的线路,辅助理解原理。
- 实操配置:
- 难点:精准修改配置选项,避免误改关键配置。
- 解决办法:备份
vue.config.js
文件,每次修改前对比备份,确认修改位置;修改完先运行项目,出现问题及时回滚配置,根据报错信息针对性排查。
axios 封装
- 拦截器设置:
- 难点:掌握拦截器生命周期,正确处理数据与异常。
- 解决办法:查阅 axios 官方文档关于拦截器的介绍,牢记生命周期各阶段功能;在拦截器里添加详细的日志输出,观察数据处理和异常捕获情况;参考成熟的 axios 封装开源项目,学习异常处理的优秀实践。
环境区分
- 变量理解:
- 难点:区分不同环境变量取值差异与用途。
- 解决办法:在
.env.development
和.env.production
等文件里,给变量添加详细注释,标注用途和取值范围;在代码里使用变量的地方,打印输出观察不同环境下实际取值,加深印象。
登录联调
- 多模块协同:
- 难点:保障多模块数据传递、接口调用、页面跳转无误。
- 解决办法:先对每个模块单独单元测试,确保功能正常;添加跨模块的数据追踪日志,记录数据在不同模块间流转情况;利用浏览器调试工具,观察接口调用、页面跳转过程,出现问题按日志和调试信息排查。
主页权限验证(鉴权)
- 守卫逻辑:
- 难点:复杂嵌套判断,避免权限漏洞。
- 解决办法:将守卫逻辑拆分成小函数,每个函数负责单一判断任务,提升代码可读性;编写测试用例,覆盖各种权限场景,如有无
token
、访问不同页面类型,用测试驱动开发,确保逻辑严密。
用户资料处理
- 获取与管理:
- 难点:协调路由跳转、Vuex 状态更新时机,梳理资料流程。
- 解决办法:利用 Vue Router 的导航钩子生命周期函数,在合适节点触发 Vuex 状态更新;绘制用户资料获取与更新的流程图,标注路由相关节点,按图梳理代码逻辑;添加状态监控日志,观察资料状态是否及时更新。
显示用户信息
- 属性引用与样式:
- 难点:确保数据绑定准确,适配不同屏幕样式。
- 解决办法:使用 Vue 官方提供的调试工具,检查数据绑定是否正确;采用响应式 CSS 框架(如
Bootstrap
、Tailwind CSS
),利用框架提供的类名轻松适配不同屏幕,再按需微调样式。
头像为空处理
- 语法升级:
- 难点:确认升级无版本冲突。
- 解决办法:升级前备份
package.json
和package-lock.json
文件,升级后运行项目,若出现错误,对比备份文件,回滚相关依赖版本,逐次排查问题。
token 失效应对
- 拦截与登出逻辑:
- 难点:适时触发登出 action,避免误判。
- 解决办法:在请求拦截器添加详细判断逻辑注释,辅助理解何时触发;模拟不同的
token
状态场景,如过期、即将过期等,全面测试登出逻辑,确保用户体验不受影响。
退出登录功能
- 事件修饰符运用:
- 难点:理解修饰符改变事件绑定行为原理。
- 解决办法:查阅 Vue 官方文档里关于事件修饰符的介绍,结合简单示例项目,动手实践,对比添加修饰符前后的事件触发效果,加深理解。
修改密码功能
- 流程完整性:
- 难点:保证多环节代码不出错。
- 解决办法:为每个环节代码添加注释,标注功能和数据流向;按环节顺序逐步测试,先确保单个环节没问题,再串联起来整体调试;出现问题时,根据注释和调试信息定位。
项目清理与创建
- 文件筛选与集成:
- 难点:准确判断文件去留,避免路由冲突。
- 解决办法:查看现有路由和请求模块的使用情况,梳理调用关系,没有调用的大概率可删除;集成新路由和组件时,先在测试环境添加,运行测试,观察有无冲突报错,再正式集成。
左侧菜单解析
- 数据关联与渲染:
- 难点:理清多层嵌套与数据交互流程。
- 解决办法:绘制组件树状图,标注数据传递方向;在关键组件代码里添加注释,说明接收和传递的数据内容;通过浏览器调试工具,观察菜单渲染过程中的数据变化,辅助理解。
左侧菜单显示 logo
- 状态响应与样式切换:
- 难点:实现流畅动画效果,融合 Vue 响应式编程与 CSS 动画。
- 解决办法:学习 Vue 过渡动画相关的 API,结合 CSS 动画属性,先做简单的动画效果小实验;在
Logo.vue
里,利用 Vue 响应式数据驱动动画状态,通过调试工具观察动画触发和状态切换,不断优化。
相关文章:
今日总结 2024-12-23
项目初始化 拉取代码与环境配置: 难点:Git 命令不熟悉,依赖文件定位不准,启动脚本含义不明。解决办法:系统学习 Git 基础操作,如通过官方文档、优质的 Git 教程视频,反复练习克隆、分支切换等常…...

c++------------------函数
函数定义 语法格式 函数定义包括函数头和函数体。函数头包含返回类型、函数名和参数列表。函数体是用花括号{}括起来的代码块,用于实现函数的功能。例如,定义一个计算两个整数之和的函数: int add(int a, int b) {return a b; }这里int是返回…...
软件信息化平台项目投标技术方案中如何进行项目实施方案以及安全质量方案培训售后方案应急预案的编写?
在软件平台投标技术方案中,项目实施方案、质量管理、安全管理、培训方案、售后服务方案和应急预案等章节至关重要,它们分别从不同角度确保项目的顺利实施、高质量交付、安全稳定运行、用户有效使用、持续服务保障以及应对突发情况的能力。各章节编制要点相互关联、协同作用,…...
Apache Tomcat 漏洞CVE-2024-50379条件竞争文件上传漏洞 servlet readonly spring boot 修复方式
1,关于漏洞 Apache Tomcat是一个流行的开源 Web 服务器和 Java Servlet 容器。 二、 漏洞描述 Apache Tomcat中修复了个 TOCTOU 竞争条件远程代码执行漏洞 (CVE-2024-50379),该漏洞的 CVSS 评分为 9.8。Apache Tomcat 中 JSP 编译期间存在检查时间使用时…...

中国信通院致信感谢易保全:肯定贡献能力,期许未来合作
近日,中国信息通信研究院(以下简称“中国信通院”)向易保全发感谢信表达谢意,对其在中国信通院牵头的“铸基计划”——企业数字化转型高质量发展推进行动实施中展现出的重要贡献给予了高度评价和肯定,并展望了双方至20…...

20241220流水的日报 mysql的between可以用于字符串 sql 所有老日期的,保留最新日期
1.F310A RKP有效性验证讨论:需连外网,需先用app生成标志,工具读标志。 2.M200 适配一个 给客户写配置的工具 mysql的between可以用于字符串 批量打印包装箱时,提示有重复N条的处理方法: --先备份数据库,删…...

低代码开源项目Joget的研究——安装部署
大纲 环境准备安装必要软件配置Java配置JAVA_HOME配置Java软链安装三方库 获取源码配置MySql数据库创建用户创建数据库导入初始数据 配置数据库连接配置sessionFactory编译下载tomcat启动下载aspectjweaver移动jw.war文件编写脚本运行 测试参考资料 Joget,作为一款开…...
《鸿蒙开发-答案之书》字符串占位符格式化
《鸿蒙开发-答案之书》字符串占位符格式化 先在string.json定义: {"name":"message_arrive","value":"We will arrive at %s."}使用,它有两种使用方式: 方式一: Text($r(app.string.…...

workman服务端开发模式-应用开发-gateway长链接端工作原理
一、长链接的工作原理 Register类其实也是基于基础的Worker开发的。Gateway进程和BusinessWorker进程启动后分别向Register进程注册自己的通讯地址,Gateway进程和BusinessWorker通过Register进程得到通讯地址后,就可以建立起连接并通讯了。而Gateway进程…...
Android 关于Tencent vConsole 添加入webView 总结
官方地址: https://github.com/Tencent/vConsole/blob/dev/doc/tutorial_CN.md 上面文档中提供了两种常见的引入H5工程思路,简单易懂! 今天这篇文章要说明的是,不同于官方文档的接入方式。 先说背景:H5工程方&…...
【路径规划】原理及实现
路径规划(Path Planning)是指在给定地图、起始点和目标点的情况下,确定应该采取的最佳路径。常见的路径规划算法包括A* 算法、Dijkstra 算法、RRT(Rapidly-exploring Random Tree)等。 目录 一.A* 1.算法原理 2.实…...

【AIGC】ChatGPT 结构化 Prompt 的高级应用
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯标识符的使用(Use of Identifiers)1. #2. <>3. - 或 4. [] 💯属性词的重要性和应用应用场景 💯具体模块…...
Go web 开发框架 Iris
背景 掌握了 Go 语言的基础后就该开始实践了,编写Web应用首先需要一个 web 开发框架。做框架选型时,处理web请求是基本功能,至于MVC是更进一步需要。现在比较流行的web架构是前后端分离,后端响应RESTful的请求,Iris 能…...

uniapp Native.js 调用安卓arr原生service
最近搞了个uni小项目,一个定制的小平板,带一个nfc设备,厂家只给了一套安卓原生demo,头一次玩原生安卓,废了好半天劲打出来arr包,想镶进uniapp里,网上查了好久,都是错的,要…...

C#代码实现把中文录音文件(.mp3 .wav)转为文本文字内容
我们有一个中文录音文件.mp3格式或者是.wav格式,如果我们想要提取录音文件中的文字内容,我们可以采用以下方法,不需要使用Azure Speech API 密钥注册通过离线的方式实现。 1.首先我们先在NuGet中下载两个包 NAudio 2.2.1、Whisper.net 1.7.3…...
【一文了解】C#重点-委托1
本篇文章来学习一下C#的委托,委托是C#中的一个重要概念,它允许将方法作为参数传递给其他方法。C#中的委托类似于C或C中的函数指针,并且类型安全。 委托 1.委托的定义 委托(delegate)是方法的代理/代表,委托…...

WPF+MVVM案例实战与特效(四十五)- 打造优雅交互:ListBox 的高级定制与行为触发(侧边菜单交互面板)
文章目录 1、引言2、案例效果3、案例实现1、依赖安装2、文件创建3、代码实现1、依赖引用与上下文2、个性化视觉效果:自定义 ItemContainerStyle3、页面样式与布局完整代码4、ViewModel 逻辑实现5、子界面代码:3、实现效果4、源代码获取5、总结1、引言 在WPF应用程序开发中,…...

新版Android Studio 2024.1.2版本,如何通过无线wifi连接手机实现交互
1、首先,先确定手机是否启动了开发者选项 在我的设备 -> 全部参数 -> MIUI版本点击6下 (有的手机是 关于手机 -> 查看手机版本 ) 2、在设置中搜索 开启开发者选项 3、进入开发者选项后,在 调试 中选择 无线调试并选择…...

VTK知识学习(26)- 图像基本操作(一)
1、前言 图像处理离不开一些基本的图像数据操作,例如获取和修改图像的基本信息、访问和修改图像像素值、图像显示、图像类型转换等。熟练掌握这些基本操作有助于使用 VTK进行图像处理应用程序的快速开发。 2、图像信息的访问与修改 1)利用vtkIamgeData…...

2024年9月AI头条新闻:创新与挑战并存
2024年9月AI头条新闻:创新与挑战并存 9月,人工智能领域继续高速发展,重大产品发布、伦理争议和技术突破交织在一起。让我们回顾一下本月最重要的AI新闻: OpenAI的o1:更强大的语言模型 OpenAI推出了o1,一个…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...