前端面试小总结(一)

前端面试小总结(一)

所谓金三银四,不少小伙伴应该跟我一样追求更好的生活环境,楼主也小面了一波,也算了解到自己的市场价位吧,有位hr跟我说过,即使不跳槽,也要经常去面试,这样才能更准确的把握自己的市场价值,我觉得还是挺有道理的,楼主比较菜😢😢😢,总结一波我面试时经历的技术问题
Q1:缓存组件用过吗?如果想在缓存组件里局部更新某个东西,应该怎么做
A1(我当时的):用过的(实际只是看过,但不能露怯👀👀👀),keep-alive组件,用来缓存组件的某些状态,局部更新的话应该有钩子函数吧,类似mounted这种(这方面的确没有太关注过,后面查了下才知道,有个activated和deactivated,至于这两个函数,当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。当再次进入(前进或者后退)时,只触发activated。)
Q2:你在项目中做过优化吗,怎么做的?
A2:做过的,比如在webpack里面配置预加载,对于体积小的图片直接base64保存,减少服务器请求,一些小的按钮也会尽量使用雪碧图(也叫精灵图),最主要是要对症下药,分析性能瓶颈出现在什么地方,在结合实际去做修改(这方面网上比较多,大家可以自行百度)
Q3:promise用过吧,假如我有很多个接口,下个接口需要上个接口里的某个数据,这种你怎么写?
A3:可以直接放在.then里啊(没有get到面试官的点)
Q3-2:你这样写会写很多个层级,形成异步回调地狱,还有没有什么方法?
A3-2:哦,的确是这样,很多的话用async-await,这样代码的确会好看点
Q4:vue双向绑定的原理知道吗?
A4:(内心独白:这我肯定看过了啊,面试多少还是有点准备的,先装一波😎😎😎)您问的是v2的还是v3的
Q4-2:你说下v2的
A4-2:v2的话是通过object.defineProperty以及订阅发布者模式来实现双向绑定的,object.defineProperty会拦截setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来实现双向绑定
Q4-3:那v3了·
A4-3:v3是通过proxy实现代理的方式来实现双向绑定的,其他跟v2差不多
Q5:你一般接口请求放在哪个生命周期?
A5:我一般放在created和mounted里,但我更多时候放在mounted(当我这样答的时候已经凉凉了,这方面以前的确没考虑到)
Q5-2:为什么啊?
A5-2:(的确没想过为什么,所以只能扯了)个人习惯
Q5-3:那你说说created和mounted有啥区别?
A5-3:created的时候可以获取到data里的数据,但是dom还没有创建好,mounted的时候已经可以访问dom中的元素了
Q5-4:嗯,所以说你在mounted的时候再去请求接口是不是会重新绘制页面,这样对用户体验不好(面试官人还是挺不错的,把我引到这方面来,跟这样的面试官沟通很舒服)
A5-4:是我考虑不周到(错了就承认,你要是每道题都能答对,换你做面试官好了)
总结一下,就是多面试,多查漏补缺,即使第一家面不上,但是多面几家你就知道现在的市场上关注的技术在哪里,自己的薄弱点在哪里,有计划有针对的对自己进行"升级",最后祝愿大家虎虎生威,在新的一年里都能找到自己的心仪工作,事业家庭双丰收😊😊😊

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值