第一次前端面试复盘(北森一面凉经)

时间:2022.08.10晚

1.自我介绍

2.谈谈你的项目,主要做的什么,以及它的业务背景。

(面试官:接下来我们分别进行几个话题,能聊多深聊多深...知道多少说多少....)

3.谈谈你对vue的生命周期的理解?

   父子组件的执行顺序是什么?

   为什么父组件状态先生成,但后销毁?

   如何监听子组件的生命周期状态?(这个问题没有回答上来...)

    答:有两种监听子组件生命周期的方法:1.父子组件通信的方式,用$emit,就是在父组件上封装了一个v-on的事件用来监听子组件的事件,只不过事件名和钩子函数同名,当子组件发布时,即执行this.$emit('钩子函数created/mounted',参数)时,在父组件则可以监听到,然后执行回调。2.@hook 方法可以监听子组件的任何的生命周期。子组件不需要发布。直接在父组件中,插入子组件的地方,使用@hook.声明周期函数名="函数名"即可.

$emit的例子:

父组件:
<template>
  <div>
    <child-component @mounted="handleDoSomething"></child-component>
  </div>
</template>
<script>
export default Vue.component("HelloWorld", {
 ...
  methods:{
    handleDoSomething(data){
      console.log('监听到子组件生命周期钩子函数mounted时,触发该回调',data)
    }
  },
  components:{
    "child-component":ChildComponent
  }
});
</script>
子组件:
<script>
export default {
   ...
    mounted(){
        this.$emit('mounted','mounted 触发了')
    },
}
</script>

hook的例子:

<template>
  <div>
    <child-component @hook:mounted="handleDoSomething"></child-component>
  </div>
</template>
<script>
export default Vue.component("HelloWorld", {
 ...
  methods:{
    handleDoSomething(data){
      console.log('监听到子组件生命周期钩子函数mounted时,触发该回调',data)
    }
  },
  components:{
    "child-component":ChildComponent
  }
});
</script>

4.有一个tab键,如何通过切换tab来实现背景颜色或者其他样式的转换?

(我说了两种方案,一个用动态class,一个用v-show;面试官说可以实现,但后续要优化的操作太多,有没有别的?emm没想出来)

5.谈谈你对promise的理解?

   回调地狱怎么理解?

   promise是如何解决的?

(最后面试官问的地方不会,但忘记具体问的啥了,依稀记得是用settimeout不断进行异步嵌套会有回调地狱危险,那promise是怎么进行解决的,它是在每次then后再用settimeout吗?那这样不是没什么改变吗。。?)

6.手动实现一个promise.all的功能

(菜,这个地方没有复习到,手写代码的部分还没来得及去看)(我说不大会写,面试官说,可以说说思路;我说可以用计数,有promise状态成功执行后就加一,直到计数值等于总数就返回;然后面试官点头说就着这个思路写写。。  然后,,依旧不知道咋写)

7.反问

(此时心情已经down了,就随意的问了下底层源码是不是看?问完就觉得是个废话,面试官很有耐心的跟我说,当你工作两三年,底层是必要。。。)

总结:面试官全程非常和蔼,语气柔和,体验很好。但对我来说是个惨痛经历,都是半知半解的状态。。。让我知道,我还有很长的路要走,虽然这次面试就是为了查缺补漏,不追求结果,但还是小小的emo了,感觉自己太菜了,小李还要加油鸭!

面试考察的知识点一个是四个部分,项目、vue、js,css,手写代码。

1.原理和流程需要深入,尽量能够完整的在脑子里走一遍。

2.尽量能将各个知识点进行串联起来,它们之间的相通点。

3.要再多刷手动代码,例如手写instanceof实现原理,promise.all的手写方法等

4.虽然这次没有问算法题,但依然要多刷

多实践!多实践!多实践!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值