全部文章共 16 篇

Build a fast personal blog

A practical note on making a personal blog fast, readable, and friendly to search engines.

VueSEO面试

blog 项目 Ubuntu 22.04 部署手册(下篇:项目部署与配置)

blog 项目专属部署配置:前后端环境变量、Nginx 站点配置、Jenkins 流水线、发布顺序、常见问题排查、安全加固、version.json 发布检测与维护命令。

Node.js

blog 项目 Ubuntu 22.04 部署手册(上篇:服务器环境部署)

新服务器首次部署基础设施准备:系统初始化、Node.js 20 + PM2、MySQL 8、Redis、Nginx、Jenkins 的安装与配置。

Node.js

前端面试:高频必背 12 题

Vue3 Vite Taro AI 1. Vue3 响应式 Proxy + get 收集依赖 + set 触发更新 。 2. Composition API 让复杂逻辑聚合,方便 hooks 复用。 3. ref/reactive 简单值用 ref ,对象状态用 reactive 。 4. Pinia 轻量、TS 友好,刷新丢失可持久化或重新拉取。 5. Vite 为什么快 开发环境 ESM 按需加载,依赖预构建用 esbuild。 6

VueVite面试

前端面试:沟通协作类

1. 你如何和产品、设计、后端协作? 需求阶段确认范围和边界,开发前对齐接口和设计稿,过程中及时同步风险,联调阶段用文档和问题列表推动解决。 2. 接口文档不清楚时你怎么处理? 先整理问题点,比如字段含义、枚举、异常情况、分页规则,然后找后端确认,并把结论补到文档里。 3. 设计稿和技术实现冲突时怎么办? 先评估实现成本和影响,给出可行替代方案,和设计、产品一起确认最终效果。 4. 需求排期不合理时怎么沟通? 拆分任务,说明风险和依赖,

面试

前端面试:项目经验追问

1. 介绍一个你最熟悉的 Vue3 项目。 “我做过一个 Vue3 + TS + Vite 项目,负责某某模块,包括页面开发、接口联调、状态管理、组件封装和性能优化。” 2. 这个项目你负责哪些模块? 按实际说:登录权限、列表查询、表单配置、数据看板、订单模块、小程序首页等。重点说你独立完成了哪些。 3. 项目里最难的技术点是什么? 可以答:复杂表单联动、权限控制、性能优化、多端兼容、组件复用、接口联调复杂。一定要讲“问题、方案、结果”

面试

前端面试:组件设计与代码质量

1. 一个好组件应该具备哪些特点? 职责单一、接口清晰、可复用、可扩展、状态明确、边界处理完整、样式不污染外部。 2. 业务组件和基础组件怎么区分? 基础组件偏通用,比如按钮、弹窗、表格;业务组件绑定具体业务,比如用户选择器、订单卡片。基础组件强调通用性,业务组件强调场景效率。 3. 如何设计一个弹窗组件? 支持 visible/v-model 、标题、内容 slot、确认取消事件、loading、关闭前校验、遮罩关闭、销毁策略。 4.

面试

前端面试:Taro / 小程序方向

1. Taro 是什么?它解决了什么问题? Taro 是跨端开发框架,可以用 Vue/React 等语法开发微信、支付宝、抖音小程序和 H5,提高多端代码复用。 2. Taro 和原生微信小程序开发有什么区别? 原生小程序更贴近平台,性能和调试直接;Taro 工程化和跨端复用更好,但要处理平台差异和框架转换带来的兼容问题。 3. Taro 多端适配的原理怎么理解? 通过编译层把 Taro 代码转换为不同平台代码,同时提供统一 API。实

面试小程序

前端面试:HTTP / 浏览器 / 安全

1. HTTP 和 HTTPS 的区别是什么? HTTPS = HTTP + TLS,加密传输,防止窃听和篡改,也能验证服务器身份。 2. GET 和 POST 的区别是什么? GET 通常用于查询,参数在 URL;POST 通常用于提交,数据在 body。GET 可缓存,POST 一般不缓存。语义上 GET 应该是幂等的。 3. 常见 HTTP 状态码有哪些? 200 成功, 301/302 重定向, 304 缓存, 400 参数错误

面试

前端面试:性能优化

1. 前端性能优化一般从哪些方面入手? 加载性能、渲染性能、网络请求、缓存策略、包体积、图片资源、代码执行、监控分析。 2. 首屏加载慢怎么排查? 用 Network 看资源和接口耗时,用 Performance 看渲染和 JS 执行,用 Lighthouse 看指标。先定位是包大、接口慢、图片慢还是渲染慢。 3. 如何优化大列表渲染? 分页、懒加载、虚拟列表、减少响应式数据、避免一次渲染大量 DOM、合理使用 key 、减少复杂组件嵌

SEO面试

前端面试:Vue Router / Pinia

1. Vue Router 有哪几种模式? 主要是 hash 和 history。hash 兼容性好,不需要服务端额外配置;history URL 更干净,但刷新页面需要服务端配置 fallback。 2. 路由守卫有哪些? 全局守卫 beforeEach/afterEach ,路由独享守卫 beforeEnter ,组件内守卫。常用于登录鉴权、权限控制、页面标题、埋点。 3. SPA 首屏慢怎么优化? 路由懒加载、组件懒加载、减少首屏

Vue面试

前端面试:TypeScript

1. TS 相比 JS 的优势? TS 提供静态类型检查,可以提前发现错误,增强 IDE 提示,提升大型项目可维护性。接口数据、组件 props、业务模型都会更清晰。 2. interface 和 type 区别? interface 更适合描述对象结构,可以声明合并; type 更灵活,能写联合类型、交叉类型、工具类型。对象模型常用 interface ,复杂组合类型常用 type 。 3. 泛型是什么?怎么用? 泛型是把类型作为参数

TypeScript面试
一片冰心黔ICP备2026012107号