8. 小程序 / 网页前端答辩
本章收录 112 道老师常问问题,高频题靠前。回答时尽量结合自己的项目举例。
1. nextTick 有什么作用?
在 DOM 更新循环结束后执行回调,确保能读到更新后的 DOM。修改响应式数据后立刻操作 DOM 时常用。Vue 更新是异步批量的,所以需要 nextTick。
结合毕设:表单校验失败后滚动到错误项、弹窗打开后自动聚焦输入框。
2. keep-alive 缓存组件注意什么?
keep-alive 缓存组件实例,切换回来不销毁。配合 include/exclude、max;需在激活/失活钩子处理逻辑。列表进详情再返回保持滚动位置时常用。
注意缓存过多占内存;被缓存组件里定时器要在 deactivated 清理。
3. 插槽 slot 和作用域插槽怎么用?
默认插槽、具名插槽把父内容插入子组件;作用域插槽由子组件把数据回传给父来自定义渲染(如表格列定制)。提升组件复用性。
结合毕设封装表格/对话框时如何用插槽扩展操作列。
4. Pinia 或 Vuex 状态管理何时需要?
跨多页面共享的用户信息、权限、购物车等适合全局仓库;仅父子传递不必上状态库。Pinia API 更简洁,Vue3 推荐。
毕设说明:用户信息与 token 是否放 store,刷新后如何持久化。
5. 组合式 API 相比 Options API 优势?
按功能聚合逻辑,便于抽离 hooks/composables;TypeScript 支持更好;相同逻辑可在多组件复用。Options 按 data/methods 拆分,大组件易散乱。
6. ref 和 reactive 区别?
ref 适合基本类型与单一值,取值需 .value;reactive 适合对象,不能整体替换绑定。模板中 ref 自动解包。也可 ref 包对象。
7. 前端 SEO 对管理系统重要吗?
后台管理系统通常不需要 SEO;官网/内容站才需要 SSR/预渲染、语义化标签、sitemap。答辩如实说:本系统面向登录用户,SEO 不是目标。
8. 如何处理大文件上传?
校验类型大小、显示进度、失败重试;更大文件可分片上传+合并。注意超时与 Content-Type。结合毕设:头像/附件上传接口与限制策略。
9. 前端安全还有哪些注意点?
- 敏感信息不写死在前端
- 依赖漏洞定期升级
- 第三方脚本可信
- 上传文件类型白名单
- 生产环境谨慎开启 sourceMap 外泄源码
10. 什么是骨架屏?有什么好处?
先展示灰色占位布局再替换真实内容,降低白屏感知等待。适合列表、详情首屏。可用组件或静态 HTML 实现。
11. 如何做权限按钮的显示与隐藏?
根据角色/权限码 v-if 控制按钮;更规范可用自定义指令。强调:隐藏不等于安全,接口必须鉴权,否则改请求仍可越权。
12. iframe 使用注意?
可用于嵌入报表或第三方页,但有通信、样式、安全限制;注意 sandbox、postMessage。毕设一般少用,能原生页面就不要 iframe。
13. 如何向老师演示前端核心页面?
准备管理员与普通用户两套账号;按登录→主流程→权限差异→异常提示演示;提前清缓存;录屏备份。讲解时对照代码指出请求与组件位置。
14. 浏览器从输入 URL 到页面展示经历了哪些步骤?
典型链路:DNS 解析 → 建立 TCP(可能含 TLS)→ 发送 HTTP 请求 → 服务器响应 → 浏览器解析 HTML 构建 DOM → 解析 CSS 构建 CSSOM → 合成渲染树 → 布局(Layout)→ 绘制(Paint)→ 合成上屏。JS 可能阻塞解析,可用 defer/async 优化。
结合毕设说明你的页面是 CSR 还是服务端渲染,以及首屏慢时如何排查。
15. 什么是回流和重绘?如何减少?
回流(重排)改变几何信息(宽高、位置)会重新布局;重绘只改外观(颜色、阴影)不必重排。回流成本更高。
- 避免频繁改样式,批量修改 class
- 读写分离,减少强制同步布局
- 动画优先 transform/opacity
- 表格、复杂选择器慎用
结合毕设举例:列表渲染、弹窗动画时你做了哪些优化。
16. 什么是事件冒泡和事件捕获?事件委托有什么用?
捕获从外到内,冒泡从内到外;常用冒泡阶段监听。事件委托把监听绑在父元素,利用冒泡处理子元素事件,减少监听器数量、适合动态列表。
毕设中表格行点击、列表删除按钮可用委托实现,注意 stopPropagation 的使用场景。
17. 如何理解 JS 的原型和原型链?
每个对象有隐式原型指向构造函数的 prototype;查找属性时沿原型链向上,直到 Object.prototype 或 null。ES6 class 本质仍是原型语法糖。
答辩时能说清「实例 → 构造函数.prototype → Object.prototype」,并说明你项目里是否用到继承/混入。
18. 闭包是什么?项目中有哪些使用场景?
闭包是函数能够访问并「记住」定义时的外层作用域变量。用途:数据私有、函数柯里化、防抖节流中的计时器状态、模块封装。
注意闭包可能造成内存占用;定时器、事件监听要在销毁时清理。结合毕设举一个防抖搜索或私有计数例子。
19. 同步、异步、微任务、宏任务怎么理解?
同步代码先执行;异步任务进入任务队列。微任务(Promise.then、MutationObserver)在本轮宏任务结束后优先清空;宏任务(setTimeout、I/O、UI)下一轮执行。
答辩可画:执行栈 → 微任务队列 → 宏任务。结合 axios/Promise 说明接口回调为何晚于同步代码。
20. 深拷贝和浅拷贝区别?如何实现深拷贝?
浅拷贝只复制第一层引用;深拷贝递归复制所有层级。常用:structuredClone、lodash.cloneDeep;JSON 序列化有局限(函数、undefined、循环引用)。
改表单草稿、编辑回显时要避免直接改原对象,结合毕设说明你如何拷贝列表项。
21. 什么是同源策略?跨域如何解决?
协议、域名、端口任一不同即跨源,浏览器限制脚本读跨域响应。解决:CORS(后端放行)、开发环境代理、JSONP(仅 GET,过时)、Nginx 同域反代。
毕设前后端分离常用:开发 vite/webpack proxy,生产 Nginx 反代到 API。
22. HTTP 常见状态码你了解哪些?
200 成功;201 创建;204 无内容;301/302 重定向;400 参数错误;401 未认证;403 无权限;404 不存在;500 服务器错误;502/504 网关问题。
前端应根据 401 跳登录、403 提示无权限、5xx 友好报错,不要只 alert 原始信息。
23. GET 和 POST 有什么区别?
语义上 GET 查、POST 提交;GET 参数多在 URL,有长度与缓存特点;POST 主体传参,更适合写操作与敏感数据。REST 中还用 PUT/PATCH/DELETE。
毕设列表查询用 GET,新增修改用 POST/PUT,并说明幂等性差异。
24. Vue2 和 Vue3 有哪些重要区别?
- 响应式:Object.defineProperty → Proxy
- 组合式 API(setup)更利于逻辑复用
- 多根节点、Teleport、Fragments
- 性能与 Tree-shaking 更好
若毕设用 Vue3 + 组合式,说明为何不用 Options;若 Vue2 也要说清生命周期差异。
25. Vue 响应式原理简述?
Vue3 用 Proxy 拦截对象读写,依赖收集(track)与触发更新(trigger);模板编译为渲染函数,依赖变更后异步批量更新虚拟 DOM 再打补丁。
答辩不必背源码,能说「数据变 → 依赖通知 → 组件重新渲染」并结合 computed/watch 使用即可。
26. v-if 和 v-show 区别?
v-if 条件为假时不渲染(销毁/创建),切换成本高;v-show 仅切换 CSS display,初始都渲染。频繁切换用 v-show,权限很少进入的用 v-if。
27. Vue 组件通信方式有哪些?
父子:props / emit;跨层:provide/inject;全局:Pinia/Vuex;其他:事件总线(慎用)、路由参数、本地存储。优先明确数据流向。
结合毕设说明列表页与弹窗表单如何传参回传。
28. key 在 v-for 中为什么重要?
key 帮助虚拟 DOM 复用与正确更新节点;用唯一 id,避免用 index(插入删除易错乱)。列表动画、表单状态更依赖正确 key。
29. 什么是虚拟 DOM?有什么优缺点?
用 JS 对象描述真实 DOM,变更时 diff 后批量打补丁,减少直接操作 DOM。优点:可跨平台、批量更新;缺点:有内存与 diff 开销,简单页未必更快。
结合 Vue/React 说明你理解的是「提升可维护与批量更新」而非神话性能。
30. 前端路由 hash 和 history 模式区别?
hash 带 #,兼容好、不需服务端配置;history 用干净路径,需服务器回退到 index.html,否则刷新 404。
毕设部署 Nginx 时要配置 try_files,答辩常问这一点。
31. SPA 单页应用优缺点?
优点:体验流畅、前后端分离、局部更新;缺点:首屏可能较慢、SEO 弱、路由需配置。管理系统毕设很适合 SPA。
可用路由懒加载、骨架屏优化首屏。
32. Axios 拦截器一般做什么?
请求拦截:加 Token、统一 baseURL、打开 loading;响应拦截:统一拆 data、处理 401 跳登录、错误提示、关闭 loading。把横切逻辑集中,业务页更干净。
33. 如何取消重复请求或过期请求?
可用 AbortController、axios CancelToken(旧);同一搜索词只保留最后一次,忽略过期响应,避免先发出的慢请求覆盖新结果。
毕设搜索框防抖 + 忽略过期响应是加分点。
34. 前端表单校验怎么做才规范?
前端做体验校验(必填、格式、长度),后端必须再校验。可用 Element Plus Form rules、Vant Form。提交前校验,失败定位到字段。
强调「前端可绕过,安全靠后端」。
35. 如何防止按钮重复提交?
- 点击后禁用按钮直到请求结束
- 节流 / loading 锁
- 后端幂等 Token 或唯一约束
前后端一起做更稳妥,答辩要提到后端。
36. 前端性能优化手段有哪些?
- 减小包体积:懒加载、按需引入、压缩
- 缓存:强缓存/协商缓存、CDN
- 减少回流、虚拟列表
- 图片:WebP、合适尺寸、懒加载
- 接口合并与防抖
挑 2~3 条结合毕设真实做过的说,勿堆砌。
37. CSS 盒模型有哪些?box-sizing 作用?
标准盒模型:width 不含 padding/border;IE 怪异盒模型相反。box-sizing:border-box 让宽高包含 padding/border,布局更好算,项目常全局设置。
38. Flex 布局常用属性?
容器:display:flex、justify-content、align-items、flex-direction、flex-wrap;项目:flex、align-self。适合一维排版,管理端后台布局常用。
结合毕设顶栏+侧栏+内容区结构说明。
39. 移动端适配有哪些方案?
rem/vw、灵活 flex、媒体查询;小程序用 rpx。注意 1px 边框、安全区、横竖屏。H5 可用 postcss-px-to-viewport。
40. BFC 是什么?有什么用?
块级格式化上下文,内部布局不受外界浮动影响。触发:overflow:hidden/auto、flex 子项、display:inline-block 等。用途:清浮动、防止 margin 合并。
41. CSS 优先级如何计算?
大致:!important > 内联 > id > class/属性/伪类 > 标签/伪元素;同优先级后来者覆盖。尽量少用 !important,用 BEM 或 scoped 控制范围。
42. 什么是 XSS?前端如何防护?
跨站脚本:恶意脚本注入页面窃取 Cookie 或篡改。防护:输出编码、避免 v-html 不信任内容、CSP、HttpOnly Cookie、富文本消毒。
毕设若渲染用户输入必须提到转义。
43. 小程序和 H5 有什么区别?
小程序有双线程、包体积与域名白名单、专用 API;H5 跑在浏览器,灵活但受微信环境与性能影响。发布审核、登录(code 换 openid)是小程序特有点。
44. 小程序登录流程怎么讲?
wx.login 得 code → 后端换 session/openid → 自建登录态(Token)→ 后续请求带头。用户信息需按最新隐私合规授权。
准备一张时序图,老师很爱问。
45. UniApp 的优缺点?
优点:一套代码多端、生态组件多、毕设出活快;缺点:极端性能与平台差异、部分原生能力要条件编译。说明你为何选它以及用了哪些条件编译。
46. 如何做前端错误监控与排查?
开发:控制台、断点、Vue errorHandler、网络面板看接口。可上报 window.onerror / unhandledrejection。线上看 Nginx/后端日志配合复现。
讲一个真实 bug:从现象 → 定位 → 修复。
47. 前端工程化包括哪些内容?
模块化、构建打包、代码规范(ESLint/Prettier)、Git 分支、环境变量、自动部署、组件库与文档。毕设至少体现:目录规范、环境区分、统一请求封装。
48. 为什么需要环境变量?
区分开发/测试/生产的 API 地址、开关。Vite 用 import.meta.env,注意勿把密钥写进前端。答辩说明 .env.development / .env.production。
49. 组件库为什么按需引入?
全量引入增大首包;按需或自动按需插件只打包用到的组件,加快首屏。Element Plus 可用 unplugin-vue-components。
50. 长列表卡顿如何优化?
分页/触底加载、虚拟列表、减少列内复杂组件、图片懒加载、稳定 key。管理端表格用分页是最常见做法。
51. 前后端联调常见问题有哪些?
- 跨域与代理配置
- 字段名不一致、时间格式、Long 精度
- 鉴权头未带、401 处理
- 上传 Content-Type
准备 Postman 与接口文档,体现工程习惯。
52. 如何保证前端代码可维护?
目录分层(api/views/components)、统一请求与错误处理、组件复用、命名清晰、必要注释、去掉死代码。答辩打开项目能快速定位登录与核心业务页。
53. 前端项目如何部署?
npm run build 产出 dist → 上传 Nginx/静态托管 → 配置 try_files 支持 history → API 反代 → 缓存策略。说明你服务器目录与刷新是否 404 的处理。
54. 前端三大核心技术作用?
- HTML负责搭建页面结构,搭建文字、按钮、表单等基础布局
- CSS负责页面样式美化、布局适配、色彩样式调整
- JavaScript负责页面交互、表单校验、接口请求、动态渲染数据,三者配合实现完整前端页面。
55. Vue核心特性与项目应用?
Vue核心:双向数据绑定、虚拟DOM、组件化开发、轻量高效。组件化将页面拆分为头部、侧边栏、表单等复用组件,减少冗余代码;双向绑定实现数据视图同步,无需手动操作DOM,大幅提升开发效率。
56. 前后端完整交互流程?
- 前端通过Axios封装请求,携带参数调用后端接口
- 后端接收参数、完成参数校验、业务逻辑处理、数据库操作
- 后端统一返回JSON格式结果
- 前端根据返回结果完成页面渲染、弹窗提示、页面跳转、数据更新。
57. 页面适配、样式错乱解决方案?
- 采用弹性布局、flex布局适配多屏幕
- 使用rpx、rem自适应单位
- 重置默认浏览器样式
- 针对不同分辨率做兼容适配,有效解决页面变形、错乱、适配不佳问题。
58. 为什么做小程序/网页而不是 App?
AOP 面向切面:在不改业务代码前提下统一日志、事务、权限等横切逻辑。
- 基于 JDK 动态代理或 CGLIB
- @Aspect + @Around 记录耗时
- 答辩结合项目切面类说明
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
59. 微信小程序双线程模型?
小程序 setData 将逻辑层数据同步到视图层,频繁大数据 setData 性能差。
- 只更新变化字段
- 合并多次 setData
- 答辩说明列表渲染优化
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
60. UniApp 与原生小程序区别?
AOP 面向切面:在不改业务代码前提下统一日志、事务、权限等横切逻辑。
- 基于 JDK 动态代理或 CGLIB
- @Aspect + @Around 记录耗时
- 答辩结合项目切面类说明
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
61. 微信小程序登录授权详细流程?
- 用户点击授权登录,小程序调用wx.login获取临时code
- 前端将code传给后端
- 后端调用微信开放平台接口,解析code获取用户唯一OpenID
- 判断用户是否注册,无则自动注册,有则直接登录,返回用户信息与登录状态。
62. 前端技术栈与选型理由?
Vue 渐进式框架:数据驱动、组件化、虚拟 DOM,适合管理系统与小程序(uni-app)。
- 双向绑定 v-model
- 组件复用与单文件组件
- 答辩说明技术栈版本
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
63. 路由与页面如何组织?
权限设计常用 RBAC:用户—角色—权限,菜单与接口双重校验。
- 前端隐藏按钮不等于安全,后端必须鉴权
- 拦截器/过滤器校验登录态与角色
- 答辩演示管理员与普通用户差异
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
64. 如何提升体验?
简要结论:加载态、空态、防重复点击、明确错误提示。
关于「如何提升体验」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
65. 前后端联调注意?
跨域是浏览器同源策略限制不同源 AJAX 请求,需服务端 CORS 或 Nginx 反代。
- @CrossOrigin、WebMvcConfigurer、Filter 均可配置
- 允许 Origin、Methods、Headers 需最小化
- 前后端分离联调时高频考点
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
66. 响应式或适配怎么做?
简要结论:rpx/rem/viewport;管理端可固定宽。
关于「响应式或适配怎么做」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
67. 包体积如何控制?
简要结论:分包、压缩图片、按需加载。
关于「包体积如何控制」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
68. setData 注意?
小程序 setData 将逻辑层数据同步到视图层,频繁大数据 setData 性能差。
- 只更新变化字段
- 合并多次 setData
- 答辩说明列表渲染优化
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
69. 生命周期?
Vue/小程序生命周期钩子控制创建、挂载、更新、销毁阶段逻辑。
- onLoad/onShow 拉数据
- mounted 发请求
- 答辩说明在哪个钩子初始化
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
70. 页面栈限制?
简要结论:注意 navigate 层级。
关于「页面栈限制」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
71. storage 用途?
SpringMVC 参数绑定自动将请求参数封装为方法入参。
- 简单类型、POJO 对象按名称或 @RequestParam 绑定
- @PathVariable 绑定 REST 路径变量
- 答辩强调服务端仍需校验,不能只依赖前端
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
72. 授权隐私?
简要结论:按平台新规。
关于「授权隐私」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
73. 支付流程?
简要结论:统一下单再调起。
关于「支付流程」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
74. 自定义组件?
简要结论:复用。
关于「自定义组件」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
75. 状态管理?
Vue 渐进式框架:数据驱动、组件化、虚拟 DOM,适合管理系统与小程序(uni-app)。
- 双向绑定 v-model
- 组件复用与单文件组件
- 答辩说明技术栈版本
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
76. 列表分页?
分页限制单次查询数据量,常用 PageHelper 或 LIMIT offset,size。
- 前端传 pageNum/pageSize,后端封装 PageInfo
- 深分页 offset 过大性能差,可延迟关联优化
- 答辩演示列表页分页接口与 SQL
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
77. 下拉刷新?
Entity Framework Core 是 .NET ORM,Code First 迁移、LINQ 查询。
- DbContext 管理会话
- 复杂 SQL 可原生 ADO/Dapper
- 答辩展示一个实体映射
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
78. 图片懒加载?
类加载:加载→验证→准备→解析→初始化;双亲委派先让父加载器加载,防核心类被篡改。
- 自定义 ClassLoader 了解
- Tomcat 可打破委派
- 答辩说明 JVM 如何找到类
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
79. 骨架屏?
简要结论:感知性能。
关于「骨架屏」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
80. 表单校验?
简要结论:前端+后端双校验。
关于「表单校验」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
81. 上传到哪?
文件存储可选本地磁盘或 OSS 对象存储,数据库仅存路径/URL。
- 本地简单但扩展性差,OSS 适合生产
- 访问控制与防盗链
- 答辩演示上传后如何访问文件
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
82. 富文本?
简要结论:rich-text 注意消毒。
关于「富文本」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
83. TabBar?
Starter 是 Spring Boot 起步依赖,聚合常用 jar 与自动配置。
- 如 spring-boot-starter-web 引入 MVC、Tomcat、Jackson
- 约定优于配置,减少 pom 手工维护
- 答辩可对照 pom.xml 说明引入了哪些能力
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
84. 云开发?
简要结论:与自建后端差异。
关于「云开发」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
85. 真机调试?
简要结论:与开发者工具差异。
关于「真机调试」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
86. 审核注意?
简要结论:类目与隐私协议。
关于「审核注意」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
87. Vue 生命周期?
Vue 渐进式框架:数据驱动、组件化、虚拟 DOM,适合管理系统与小程序(uni-app)。
- 双向绑定 v-model
- 组件复用与单文件组件
- 答辩说明技术栈版本
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
88. computed/watch?
applicationContext.xml 是 Spring 核心配置文件,声明 Bean、扫描、数据源等。
- 与 spring-mvc.xml 分工:根容器 vs Web 容器
- Boot 项目多用 JavaConfig + yml 替代 XML
- 答辩对比 SSM 手工装配与 Boot 自动配置差异
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
89. 组件通信?
简要结论:props emit 状态库。
关于「组件通信」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
90. 路由懒加载?
类加载:加载→验证→准备→解析→初始化;双亲委派先让父加载器加载,防核心类被篡改。
- 自定义 ClassLoader 了解
- Tomcat 可打破委派
- 答辩说明 JVM 如何找到类
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
91. Axios请求封装的好处?
- 统一配置请求前缀、超时时间、请求头
- 统一拦截响应结果、处理异常报错
- 统一添加loading加载状态,简化代码、统一规范、便于维护。
92. 401 处理?
统一异常处理避免把堆栈直接返回前端,提升体验与安全。
- @ControllerAdvice + @ExceptionHandler 捕获业务/系统异常
- 封装统一 Result(code/msg/data)
- 记录日志便于排错,答辩可展示全局异常类
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
93. 权限指令?
权限设计常用 RBAC:用户—角色—权限,菜单与接口双重校验。
- 前端隐藏按钮不等于安全,后端必须鉴权
- 拦截器/过滤器校验登录态与角色
- 答辩演示管理员与普通用户差异
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
94. Element 表格?
分页限制单次查询数据量,常用 PageHelper 或 LIMIT offset,size。
- 前端传 pageNum/pageSize,后端封装 PageInfo
- 深分页 offset 过大性能差,可延迟关联优化
- 答辩演示列表页分页接口与 SQL
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
95. ECharts?
DispatcherServlet 是 SpringMVC 的核心前端控制器,统一接收并分发 HTTP 请求。
- 作为入口协调 HandlerMapping、HandlerAdapter、视图解析等环节
- 降低 Controller 与 Servlet API 的直接耦合
- 前后端分离项目中仍负责路由到 @RestController
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
96. Vite/Webpack?
applicationContext.xml 是 Spring 核心配置文件,声明 Bean、扫描、数据源等。
- 与 spring-mvc.xml 分工:根容器 vs Web 容器
- Boot 项目多用 JavaConfig + yml 替代 XML
- 答辩对比 SSM 手工装配与 Boot 自动配置差异
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
97. 环境变量?
配置分 dev/test/prod 环境,application-{profile}.yml 或 properties 切换。
- spring.profiles.active 指定环境
- 敏感信息用环境变量,不入库
- 答辩说明本地与服务器配置差异
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
98. 代理跨域?
跨域是浏览器同源策略限制不同源 AJAX 请求,需服务端 CORS 或 Nginx 反代。
- @CrossOrigin、WebMvcConfigurer、Filter 均可配置
- 允许 Origin、Methods、Headers 需最小化
- 前后端分离联调时高频考点
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
99. XSS?
XSS 跨站脚本:恶意脚本注入页面,防护需输出编码、CSP、富文本过滤。
- 前端 v-html 谨慎,后端转义用户输入
- Cookie 设 HttpOnly 减窃取风险
- 答辩结合评论/公告等输入场景说明
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
100. Token 存哪?
系统安全:登录鉴权、密码哈希、参数校验、防 SQL 注入/XSS、防越权、HTTPS。
- 不信任前端
- 敏感操作二次验证
- 答辩逐条对应实现
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
101. 防抖节流?
防抖:停止触发后才执行(搜索);节流:间隔内只执行一次(滚动/按钮)。
- 防重复提交
- lodash debounce/throttle
- 答辩结合搜索框说明
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
102. CSS scoped?
@ResponseBody 将方法返回值直接写入 HTTP 响应体,常用于返回 JSON。
- 配合 Jackson 等消息转换器序列化对象
- @RestController = @Controller + @ResponseBody
- 前后端分离项目几乎全部接口使用该方式
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
103. H5 与小程序差异?
简要结论:API 与包体。
关于「H5 与小程序差异」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
104. 打包部署?
SSM 传统打 war 部署外置 Tomcat;Spring Boot 打 jar 内嵌容器 java -jar 运行。
- Maven package 生成可部署包
- 注意 profile 与环境配置分离
- 答辩能说出部署命令与端口配置
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
105. 首屏优化?
简要结论:压缩按需图片。
关于「首屏优化」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
106. 小程序域名?
简要结论:request upload download。
关于「小程序域名」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
107. 本地 mock?
简要结论:并行开发。
关于「本地 mock」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
108. 组件库选型?
简要结论:Vant/Element 等。
关于「组件库选型」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
109. TypeScript?
DispatcherServlet 是 SpringMVC 的核心前端控制器,统一接收并分发 HTTP 请求。
- 作为入口协调 HandlerMapping、HandlerAdapter、视图解析等环节
- 降低 Controller 与 Servlet API 的直接耦合
- 前后端分离项目中仍负责路由到 @RestController
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
110. 最大前端坑?
简要结论:真实案例。
关于「最大前端坑」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词
111. 如何自测页面?
权限设计常用 RBAC:用户—角色—权限,菜单与接口双重校验。
- 前端隐藏按钮不等于安全,后端必须鉴权
- 拦截器/过滤器校验登录态与角色
- 答辩演示管理员与普通用户差异
结合毕设:在前端页面与接口联调中,可指出具体类名、配置项或表结构,避免只背概念。
112. 答辩重点?
简要结论:交互完整、能演示。
关于「答辩重点」,答辩建议按「概念解释 → 原理要点 → 项目应用」三步展开:
- 先用一句话说清定义或结论(如上)
- 补充 2~3 个技术要点或注意事项,体现理解深度
- 在前端页面与接口联调中,结合自己的代码、配置或表结构举例,避免只背关键词