前端面经
- 岗位:前端开发实习生
- 时长:35分钟
今天是2023/02/09 开年的第四份面经,今天全程不在状态,必挂无疑。
- 保留节目:自我介绍
- vue2 和 vue3 的区别是什么?
我说了生命周期和组合式API,准备说双向绑定之前,他打断我:直接说双向绑定怎么实现的。
- vue3 双向绑定怎么实现?
这里没说好,他说:听你的答案是没怎么关注过底层是怎么实现的吧?我说还没有看过源码。
- 如果让你学 react 来做项目,怎么样?
说了 vue 跟 react 都是 MVVM 框架学一种再学另一种不会花费太多时间。
- 目前 ts 的能力去到哪里了?
使用阶段,简单说了 ts 的强类型。
- Java 的强类型跟 ts 的强类型有什么区别?
不会,随便说了点。他说:你不是计科专业的吗,对 Java 这么不了解?我说平时比较少用。
- 我们的项目都是用的 react + ts,也不知道你的学习能力如何,得做一个评估。
明白,我觉得应该得有一周的时间去学习新的生态和巩固之前看过的内容。
- 你用 vue3 开发 ant-design 是用哪种写法是实现的?JSX 还是普通写法?
我用的是普通的写法,这里感觉面试官已经在不耐烦了。。。
- ts 用到的有哪些库,哪些内容啊?
这里我不知道他想问的是 vue 生态,没理解他的意思。一时之间,我竟不知道要回答什么。
- 比如你这个平台有使用到路由吗?
(居然是在问这些,我潜意识里没把 vue-router 当第三方库)有的,使用了 vue-router。
- vue-router 有权限吗?
我说这个项目只有注册登录有加了权限。
- 具体怎么设计的?
我说用了前置路由守卫,通过参数 to from next,判断用户是否登录,如果未登录就强制其跳转到注册登录页。
- 如果他是有登录了,但是没有权限操作这个页面呢?(从这个问题开始就陷入僵局,面试官想问除了注册登录以外的其他权限,如果用户不能操作,在前置路由守卫应该如何写?我在思考的时候漏掉了他的前提:已登录)
所以我把 to from next 重新说了一遍,但是他说是不是没理解我的意思。这里是我的锅,后来我回忆了一下,是想问 router.push() (艹,根本没想到这么简单的 API 他会引导我去说,当事人越想越后悔,来到这里面试官已经觉得我连使用都不熟悉了)
- token 登录机制怎么做?(这里面试官没问哪个项目,我以为是一个独立的新题。低代码项目我用的是 session,但是我会 token ,所以就解释了 token 的过程。但是面试官其实还停留在低代码项目里,我解释了 token 之后,他觉得有些地方跟前置路由守卫对不上,所以就说 token 不是你写的吧,token 拿到之后还要判断是否正确)
天呐,冤死我了呜呜呜。
- 回到刚刚那个问题,使用前置路由守卫,如果有权限,可以进入页面,如果没有权限,不能进入页面。还有如果有没有权限都可以进入页面,但是没有权限虽然没被拦截还是要让他离开此页面,又该如何?
上面这个表述是我根据记录好不容易捋顺了的话,当时面试官讲的有点含糊,我理解不了他想表达的意思,还以为他在问我项目问题,答非所问了。到这,面试官已经不想面我了,说了一句,这不就五六行代码的事情吗,是没听懂我的意思?
- 如何实现状态管理的?
使用 pinia,但是面试官说 pinia 不是用来做持久化的吗,有没有用过 vuex ?我说没有用 vue2 做过项目,所以没有用 vuex。
- 持久化这方面了解多少?
说了 pinia 的底层应该是用存储到 localStorage 的思路,可以通过配置修改,存储到 sessionStorage 里面。
- SSR 有接触过吗?
没有用过,但是我对他在理论上有一些了解,说一下思路和优点。
- SSR 如何来解决一些数据同步的问题?能简单写写?
SSR 没有实践过,不清楚。
- nginx 使用过吗?你们怎么实现跨域啊?
G,nginx 配置说不上来。
- react 的用法说一下?或者写一下代码?
(他又忘记我还没看 react)
反问环节
- 知道是挂了就不想多问了。
结果
- 虽然 HR 还没通知,但是必挂无疑。(好吧二面过了,等三面HR面吧)
反思
- 今天面试官气场很强大,被吓到了,很不自信。
- 现场他提出需求,是想让我说出一些技术,但是我没能理解到他的意思,很多答非所问。
- 要把框架的生态,作用和用法搞清晰,不然以后还有可能遇到学过的 API 但是没能 get 到面试官的意图然后没答出来。
- 因为我学的时候是学了 vue 的全家桶,所以就会把 vue-router,vuex 这些生态当成 vue 的一部分。面试官是怕我只用 vue,没学这些生态,所以会想引导我说出来。但在我的潜意识,没有把 vue-router,vuex 这些当成第三方库,所以面试官问我第三方库的时候,我没有联想到这些,就没回答上来。
- 如果没 get 到面试官的意思,在反问环节一定要问面试官刚刚是想引导我说出什么?说不定可以恍然大悟,然后趁机把关于该知识点的会的内容全部讲给面试官听,说不定还能补救。
- 通过这次面试发现自己的知识面太窄,理解能力也还有欠缺,开始努力吧。