开年第四份面经:前端开发实习生

351 阅读5分钟

前端面经

  • 岗位:前端开发实习生
  • 时长:35分钟

今天是2023/02/09 开年的第四份面经,今天全程不在状态,必挂无疑。

  1. 保留节目:自我介绍
  2. vue2 和 vue3 的区别是什么?

我说了生命周期和组合式API,准备说双向绑定之前,他打断我:直接说双向绑定怎么实现的。

  1. vue3 双向绑定怎么实现?

这里没说好,他说:听你的答案是没怎么关注过底层是怎么实现的吧?我说还没有看过源码。

  1. 如果让你学 react 来做项目,怎么样?

说了 vue 跟 react 都是 MVVM 框架学一种再学另一种不会花费太多时间。

  1. 目前 ts 的能力去到哪里了?

使用阶段,简单说了 ts 的强类型。

  1. Java 的强类型跟 ts 的强类型有什么区别?

不会,随便说了点。他说:你不是计科专业的吗,对 Java 这么不了解?我说平时比较少用。

  1. 我们的项目都是用的 react + ts,也不知道你的学习能力如何,得做一个评估。

明白,我觉得应该得有一周的时间去学习新的生态和巩固之前看过的内容。

  1. 你用 vue3 开发 ant-design 是用哪种写法是实现的?JSX 还是普通写法?

我用的是普通的写法,这里感觉面试官已经在不耐烦了。。。

  1. ts 用到的有哪些库,哪些内容啊?

这里我不知道他想问的是 vue 生态,没理解他的意思。一时之间,我竟不知道要回答什么。

  1. 比如你这个平台有使用到路由吗?

(居然是在问这些,我潜意识里没把 vue-router 当第三方库)有的,使用了 vue-router。

  1. vue-router 有权限吗?

我说这个项目只有注册登录有加了权限。

  1. 具体怎么设计的?

我说用了前置路由守卫,通过参数 to from next,判断用户是否登录,如果未登录就强制其跳转到注册登录页。

  1. 如果他是有登录了,但是没有权限操作这个页面呢?(从这个问题开始就陷入僵局,面试官想问除了注册登录以外的其他权限,如果用户不能操作,在前置路由守卫应该如何写?我在思考的时候漏掉了他的前提:已登录)

所以我把 to from next 重新说了一遍,但是他说是不是没理解我的意思。这里是我的锅,后来我回忆了一下,是想问 router.push() (艹,根本没想到这么简单的 API 他会引导我去说,当事人越想越后悔,来到这里面试官已经觉得我连使用都不熟悉了)

  1. token 登录机制怎么做?(这里面试官没问哪个项目,我以为是一个独立的新题。低代码项目我用的是 session,但是我会 token ,所以就解释了 token 的过程。但是面试官其实还停留在低代码项目里,我解释了 token 之后,他觉得有些地方跟前置路由守卫对不上,所以就说 token 不是你写的吧,token 拿到之后还要判断是否正确)

天呐,冤死我了呜呜呜。

  1. 回到刚刚那个问题,使用前置路由守卫,如果有权限,可以进入页面,如果没有权限,不能进入页面。还有如果有没有权限都可以进入页面,但是没有权限虽然没被拦截还是要让他离开此页面,又该如何?

上面这个表述是我根据记录好不容易捋顺了的话,当时面试官讲的有点含糊,我理解不了他想表达的意思,还以为他在问我项目问题,答非所问了。到这,面试官已经不想面我了,说了一句,这不就五六行代码的事情吗,是没听懂我的意思?

  1. 如何实现状态管理的?

使用 pinia,但是面试官说 pinia 不是用来做持久化的吗,有没有用过 vuex ?我说没有用 vue2 做过项目,所以没有用 vuex。

  1. 持久化这方面了解多少?

说了 pinia 的底层应该是用存储到 localStorage 的思路,可以通过配置修改,存储到 sessionStorage 里面。

  1. SSR 有接触过吗?

没有用过,但是我对他在理论上有一些了解,说一下思路和优点。

  1. SSR 如何来解决一些数据同步的问题?能简单写写?

SSR 没有实践过,不清楚。

  1. nginx 使用过吗?你们怎么实现跨域啊?

G,nginx 配置说不上来。

  1. react 的用法说一下?或者写一下代码?

(他又忘记我还没看 react)

反问环节

  • 知道是挂了就不想多问了。

结果

  • 虽然 HR 还没通知,但是必挂无疑。(好吧二面过了,等三面HR面吧)

反思

  1. 今天面试官气场很强大,被吓到了,很不自信。
  2. 现场他提出需求,是想让我说出一些技术,但是我没能理解到他的意思,很多答非所问。
  3. 要把框架的生态,作用和用法搞清晰,不然以后还有可能遇到学过的 API 但是没能 get 到面试官的意图然后没答出来。
  4. 因为我学的时候是学了 vue 的全家桶,所以就会把 vue-router,vuex 这些生态当成 vue 的一部分。面试官是怕我只用 vue,没学这些生态,所以会想引导我说出来。但在我的潜意识,没有把 vue-router,vuex 这些当成第三方库,所以面试官问我第三方库的时候,我没有联想到这些,就没回答上来。
  5. 如果没 get 到面试官的意思,在反问环节一定要问面试官刚刚是想引导我说出什么?说不定可以恍然大悟,然后趁机把关于该知识点的会的内容全部讲给面试官听,说不定还能补救。
  6. 通过这次面试发现自己的知识面太窄,理解能力也还有欠缺,开始努力吧。