vue是怎么实现响应式更新的
vue2: 在组件实例化时,递归遍历对象的每个属性,使用 Object.defineProperty() 重新定义 getter 和 setter ,每次访问属性时触发 getter,收集依赖(Dep),修改属性值时触发 setter,通知依赖更新(watcher),最后实现视图的更新,但是defineProperty也是有缺点的.主要有三个缺点:
对于复杂的对象需要深度监听,必须递归遍历整个对象,性能开销大,它的计算量是非常大的,性能也不是很好
对于对象的新增和删除属性是无法监听的,所以它需要使用Vue.$set()和Vue.$delete()来作为辅助操作
对于数组,由于不能直接拦截数组的索引和长度变化,Vue 重写了部分会改变数组内容的方法 [‘push’,’pop’,’shift’,’unshift’,’splice’’sort’,’reverse’],比较繁琐
vue3: 对于vue3的响应式原理是利用Proxy和reflect来做的,替代了 Vue 2 中对 Object.defineProperty 的使用。我们通过new P ...
学习教程参考
引用站外地址
尚硅谷5天上手MySQL视频教程,mysql数据库安装到实战
bilibili
数据库概述
概念
数据库是按照数据结构来组织,存储和管理数据的仓库数据库的具体体现就是磁盘的文件,或者内存的一段数据可增删改查,可共享
存储设计规则(E-R模型)
E: 将一类数据存储到一张表中
R: '表'和 '表' 可以维护某种关系,最终可以通过关系进行关联操作
库 --> 表 --> 列 --> 行
检验安装是否成功
windows为例:安装数据库后 –> cmd 打开命令行工具【以管理员身份运行】我的服务名称是 MySQL82 停止服务: net stop MySQL82 开启服务: net start MySQL82确保服务是开启的后 输入命令 mysql【可以不用管理员身份运行】 来查看数据库是否配置到环境变量中如果报:‘mysql’ 不是内部或外部命 ...
npm加速
npm config listnpm config set registry https://registry.npmmirror.com或者直接下载cnpmnpm install cnpm -g –registry=https://registry.npmmirror.com安装依赖cnpm install –save-dev
代码规范
ESLint错误提示
引用站外地址
帮助您查找和修复 JavaScript 代码中的问题
ESLint 官网
创建文件 .eslintrc 和 .eslintignore
.eslintrc中
{
"extends": [
"plugin:vue/base",
"plugin:vue/recommended",
],
"plugins": ["vue"],
"env": & ...
什么是闭包有什么用
闭包是内部函数引用外部函数局部变量的一个引用关系,这个引用关系是用一个对象去描述的,这个对象存在于内部函数对象身上closure,外部函数调用几次就有几套独立机制的闭包机制产生条件:函数嵌套函数;内部函数引用外部函数的局部变量;调用外部函数时就产生闭包,闭包不是在调用函数内部时产生的,而是在创建内部函数对象时产生。作用:延长局部变量的生命周期,让函数外部间接操作内部的局部变量, 保护变量不被销毁(持久化变量)比如计数器、节流防抖中,都需要保存状态变量。缺点:闭包分为临时闭包和永久闭包,永久闭包不会被销毁就可能产生内存泄漏,所以闭包使用完成,记得手动释放,让内部函数对象成为垃圾对象,断开指向它的所有引用用到过 闭包的场景:
防抖函数:这里 timer 变量在返回的函数中被引用,形成闭包,使得它不会被销毁。防抖函数通过闭包保存了 timer 变量,让每次触发时都可以取消上一次的定时器,只保留最后一次,从而实现“最后一次操作后才触发”的效果。
function debounce(fn, delay) {
let timer = null // 定义一个定 ...
如果发现FCP比较大,有什么优化思路
观察: Chrome DevTools → Performance 面板,点 “刷新记录 (⟳)” 按钮进行一次录制
FCP是衡量页面首次绘制内容的时间指标(图片、文字等),直接影响用户‘页面是否开始加载’的感知. 如果FCP较大,意味着首屏加载慢,用户可能觉得网站没反应.
资源体积大、加载慢
JS/CSS 图片 打包未压缩、未按需引入解决:在 vite.config.ts 中,Vite 配置在 build 模式下使用 esbuild 压缩 JS、cssCodeSplit 压缩 CSS在webpack的生产环境 plugins插件中用MiniCssExtractPlugin 提取 css 的公共部分, 有效利用缓存 optimization优化项里压缩 代码分割等配置图片: 尽量用webp格式首页组件、库太多,一次性加载太多内容vite:里面配置 optimizeDeps 预加载项目必须组件在plugins里面配置Components 自动按需引入webpack:vue2中 插件里配置 然后组件
import { B ...
序言
框架名称:GUIYUAN(归元)
在正式开工之前,给项目起个名字是一件既浪漫又讲究仪式感的事。最开始脑子一热,想叫“盘古”,毕竟盘古开天辟地,听起来就很猛——但仔细一想,这名字太有压力了,好像我不是在写代码,而是在创造宇宙。
于是转念一想,不如低调点、有点禅意、还能传达出我们平台的初心和愿景,于是——GUIYUAN(归元),登场了。
“归元”是佛家术语,意为回归本源、返璞归真。做这个平台的初衷也正是如此:
工作上重复造轮子的场景太多了,CRUD做得我们都能梦里写增删改查。多客户交付、多系统分支、每个需求都像从头来过,写着写着就开始怀疑人生。
GUIYUAN 的使命,就是把 80% 高重复性的工作沉淀为平台能力,统一、可配置,灵活复用。
只把真正有价值、因地制宜的 20% 差异化,留给开发者自由发挥。
一切冗余,皆可归元。
我不想再在代码的轮回中苦修,只想搭个平台,佛系点高效点,把“重复的归平台,灵活的归定制”这才是程序员真正的解脱。
本文还是用到我解决问题的思路 💡
遇到什么需求、问题 + 业界解决方案 + 我的解决方案 + 落地效果
技术栈:MySQL + log4js日 ...
node
未读module.exports = (…) => { … }这里导出的是一个“函数”,不是一个“对象”process.env 是 Node.js 提供的一个全局对象,用于访问系统环境变量
koa
🐣 一句话理解:
Koa 是一个轻量、优雅、现代的 Node.js Web 框架,用来快速开发后端服务或接口。
🔧 它能做什么?
Koa 可以用来:
搭建 Web 网站 / 应用
提供 HTTP 接口(REST API)
做后台管理系统接口服务
开发中间层服务(比如前后端分离项目的 BFF)
构建中间件链式调用流程(适合做权限校验、日志、统一错误处理等)
📦 常配合使用的库
名称
用途
koa-router
路由管理
koa-bodyparser
解析 POST 请求体
koa-static
提供静态资源
koa-views
模板引擎支持
koa2-cors
解决跨域问题
path 模块的用法
🐣 一句话理解:
path 是 Node.js 的核心模块,用于处理文件和目录的路径,兼容不同操作系统的路径 ...
权限
菜单权限账号登陆传递账号、密码、时间戳、验证码请求图形验证码 要传递参数key 返回的数据通过new Blob解析出来账号密码需使用AES加密
手机验证码登陆校验规则 输入手机号使用AES加密 发送成功后 开始倒计时
微信扫码登陆后端和微信方做sdk的交互(key,密钥,网址)按钮[微信登录] -> 弹出窗口上面是微信提供的二维码,前端拿到数据,渲染到页面上扫码->手机端点击允许 拿到对应的code码
APP扫码登录1、PC端请求后端生成二维码,后端创建一个全局唯一的二维码ID,并存储二维码状态(初始状态:待扫描)。2、生成二维码,二维码绑定了二维码ID等待用户进行扫描,此时前端会不断轮询接口 根据二维码id查询二维码状态,一旦状态改变页面也会同步改变3、手机扫码,携带App token/二维码ID请求后端扫描登录接口,后端也会校验App用户Token变更二维码状态为已使用4、此时PC端的轮询状态变更已扫描,把界面呈现待确认,后端生成临时token和二维码关联,保证当前二维码只会被扫描一次,后端再把临时token返回给手机,手机端也是待确认的状态端, ...
简历-铺好你的门面
先敬罗衣后敬人用最短的时间让面试官在人群中发现你并想认识你。
简历优化原则
弱化底线:公司最低要求,一般由 HR 把控,如学校、学历等。(弱化)
删除干扰项:可能会让面试官犹豫或直接跳过你的信息,如期望薪资、意向工作地等。(删除)
放大亮点:能吸引面试官关注的关键信息,如大厂经历、大型应用经验、获奖记录等。(放大)
简历模块1.个人信息 2. 工作经历 3. 项目经历 4.其他信息
个人信息
姓名:XX
学校:XX大学 (2019 - 2023,本科)
手机:136XXXXXXX22
邮箱:XXXXXXXX@qq.com
工作经历
起始年月
公司名 - 部门
职位名称(职级)
2017.01 ~ 2019.05
阿里巴巴 - 国际自媒体
高级前端工程师(P6)
2019.05 ~ 2022.05
腾讯 - 云与智慧事业群
资深前端工程师(3-2)
2022.05 ~ 2022.1 ...
























