面试elementui
面试准备:ElementUI 核心知识点
基础组件与用法
熟悉常用组件如 el-button、el-form、el-table、el-dialog 的使用场景和配置项。例如表单验证需结合 rules 和 prop 属性:
rules: {
username: [{ required: true, message: '请输入用户名' }]
}
自定义主题与样式覆盖 掌握通过修改变量或覆盖 CSS 实现主题定制。例如修改主题色:
$--color-primary: #ff6700;
@import "~element-ui/packages/theme-chalk/src/index";
组件二次封装
理解如何基于业务需求封装高阶组件。例如封装带搜索功能的 el-select:
<template>
<el-select v-model="value" filterable remote :remote-method="fetchOptions">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</template>
高级特性考察点
性能优化方案
列表类组件需关注渲染性能,例如 el-table 大数据量时启用 virtual-scroll:
<el-table :data="bigData" :row-key="id" :virtual-scroll="true"></el-table>
国际化实现 了解如何配置多语言支持:
import locale from 'element-ui/lib/locale/lang/en'
Vue.use(ElementUI, { locale })
原理层问题 可能涉及的问题包括:
- 虚拟滚动实现原理
- 表单验证的
async-validator机制 - 组件通信方式(provide/inject 在组件库中的应用)
项目经验相关
典型场景解决方案 准备实际案例说明如何解决复杂需求,例如:
- 动态表单生成方案
- 表格跨页多选实现
- 权限与组件动态挂载的结合
问题排查经验 常见问题如:
- 样式冲突的隔离方案(scoped CSS / BEM)
- 按需加载时组件注册异常处理
- 版本升级的兼容性调整
编码测试示例
组件设计题 可能要求现场实现:
<template>
<div>
<el-upload :before-upload="checkFile">
<el-button type="primary">上传CSV</el-button>
</el-upload>
<el-table :data="parsedData"></el-table>
</div>
</template>
<script>
export default {
methods: {
checkFile(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onload = e => {
this.parsedData = this.parseCSV(e.target.result)
resolve(false) // 阻止默认上传
}
reader.readAsText(file)
})
}
}
}
</script>
注意事项
- 强调组件间的解耦设计
- 展示对无障碍访问等边缘case的考虑
- 明确API设计原则(props/events/slots的合理使用)







