跳转至

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管理来封装,让请求更简洁、统一、可维护。