2025年9月1日¶
面试题¶
使用过哪些 vue 指令¶
v-bind:绑定属性
v-if、v-show:条件渲染
v-for:列表渲染
v-model:双向绑定
v-html:解析 html 字符串
v-on:绑定事件
v-show / v-if 区别¶
午间演讲示例
在Vue里,v-if是条件渲染,条件为false时DOM中根本不存在,适合不常切换的场景;
而v-show始终会渲染,只是用display: none来隐藏,切换时更高效,适合频繁显示或隐藏。
解释一下 vue 中的 mvvm 思想¶
Model指数据层,就是我们在Vue实例里定义的data,它负责存储和维护应用的数据状态。
View指视图层,就是页面上看到的DOM结构和模板。
ViewModel则是Vue的核心,它是连接Model和View的桥梁。Vue通过数据绑定和指令机制,让数据的变化自动反映到视图上,同时用户在视图中的操作也能自动更新数据。
午间演讲示例
Vue中的MVVM思想就是让数据改变驱动视图更新,视图操作反过来影响数据,开发者只需要关注逻辑和数据,不必再操心DOM细节。
能编写前端页面吗?掌握哪些前端技术¶
午间演讲示例
可以,掌握的前端技术有 vue 3、element-plus、axios
使用过哪些 vue 生命周期函数¶
beforeCreate:实例初始化之后,数据观测和事件配置之前调用。此时data和methods都还不可用。
created:实例已经创建完成,可以访问data和methods,但此时还没有挂载DOM。
beforeMount:在挂载开始之前调用,相关的render函数首次被调用。
mounted:实例挂载完成,DOM已生成,可以进行DOM操作。常用于发送请求、操作DOM。
beforeUpdate:数据更新时调用,发生在虚拟DOM重新渲染和打补丁之前。
updated:由于数据更改导致的虚拟DOM重新渲染和打补丁完成之后调用,此时DOM已经更新。
beforeDestroy:实例销毁之前调用,常用于清理定时器、解绑事件。
destroyed:实例销毁后调用。
午间演讲示例
我在Vue项目中主要用过 created、mounted、beforeUpdate、updated、beforeDestroy、destroyed 等生命周期函数。
在前端项目中 axios 是怎么封装的¶
在前端项目中,axios的封装主要是为了方便统一管理请求逻辑,提高代码复用性,常见做法有以下几步:
创建实例
使用axios.create()生成一个实例,统一配置基础路径baseURL、超时时间timeout、请求头等,这样项目里调用时不用重复写。
请求拦截器
在请求发送前做一些统一处理,比如:
- 自动携带token到请求头,用于鉴权;
- 在全局开启loading动画,提升用户体验。
响应拦截器
在响应返回后统一处理,比如:
- 判断后端返回的状态码,拦截错误,统一提示;
- 如果发现token过期,可以跳转登录页面;
- 对返回的数据进行统一格式化,让调用方直接拿结果用。
封装请求方法
一般会写成一个request.js文件,把get、post、put、delete这些方法再封装一层,外部调用时只需传入url和参数。
模块化管理
不同业务接口可以再封装在各自的API模块中,比如userApi.js、orderApi.js,这样更清晰,维护也方便。
午间演讲示例
axios在前端项目里一般会通过创建实例、加上请求和响应拦截器、统一处理错误和token,再结合模块化的API管理来封装,让请求更简洁、统一、可维护。