总计1h
一、项目
1. 为什么把token存在localStorage里而不存在vuex中?
当浏览器刷新时,会重新加载js脚本,重新加载Vue实例,那么vuex中的数据就会被重置,用户的信息就没有了,就会重定向登录页。
2. 怎么想到要在前端事先判断一下时间?
最开始每次判断都是把token发给后端去判断,但因为这个项目是把数据托管到Firebase中,每次请求的速度都非常慢,所以想到先在前端做一个初步的判断,可以减少一些请求。
3. 那如果之后我的过期时间发生变化了呢?
可以在返回的token后面加上新设置的过期时间,比如xxxxxx | 200,存储的时候就存成这个样子,取出的时候就token,split('|')[0]。
4. 项目的难点?
5. 为什么要使用虚拟列表?和请求数据间有什么联系?
我仔细想了想,的确是为了用虚拟列表而用虚拟列表,明明请求的时候可以限制条数,那为什么还用虚拟列表呢.....
6. 为什么要用CSS来实现节流?
好玩...(当然不是这么回答的) 单纯不想loading....
二、业务
1. 白屏的优化
一会儿写一篇单独的文章来整理优化手段
2. SSR是怎么做的
3. 如何实现切换皮肤、暗黑模式这种功能
1 // js代码 2 <script> 3 let btn = document.querySelector('#btn'); 4 let change = document.querySelector('.box'); 5 6 btn.addEventListener('click', ()=>{ 7 let cls = change.className; 8 console.log(cls); 9 if (cls.indexOf('dark') !== -1) { 10 change.className = change.className.replace(' dark', '') 11 } else { 12 change.className += ' dark' 13 } 14 }) 15 </script>
1 // css代码 2 <style> 3 .box { 4 width: 300px; 5 height: 300px; 6 color: black; 7 background-color: lightgreen; 8 } 9 .dark { 10 color: white; 11 background-color: black; 12 } 13 </style>
实现效果:
4. CSS的优先级
5. 如果用户点击页面会有卡顿,如何来定位这种错误
也要写一篇专门分析的文章
三、其他
1. 实习的收获
2. 对钉钉的看法
3. 为什么投钉钉
四、反问
1. 面试会有多看中对方的项目经历
2. 建议,我还有哪些可以改进的地方
写在最后:
面试前了解到二面的面试官是钉钉的创始人之一,2019年的时候就已经做到了P8,内心非常惶恐,很担心因为自己太菜而耽误了对方的时间,况且在一面结束的时候,一面的面试官有说到我的项目不太行,虽然一面通过了但是很难继续走得很远。这些天来对今天的面试都抱着害怕的心情,时常在想干脆一面别过算了,心理太煎熬了。
但今天面完,和我预想得完全不一样。面试官非常平易近人,说话温和,完全不是大家想的ali面试咄咄逼人的样子。我深知自己的项目有多烂大街又简单,但我介绍的时候面试官还是会对每一个部分给予正反馈,并且也会去问我在介绍项目时提到的一些关键点,与其说是提问,其实更像是了解。
另外还有问到我去年实习时短时间内怎么做完的这个功能。其实我在之前很多面试中有讲到自己在去年实习前完全没有接触过项目,想通过这个实习来介绍自己学习能力强,但很多面试官会因为我的实习项目简单而觉得这部分的介绍也就那样,我很担心这一次面试官也会这样想。但在我把实习前联系mentor提前学习Android、周末狂补Java和面向对象编程的网课的经历都说出来的时候,他其实完全没有不耐烦,反而在最后我反问建议的时候和我说我的学习能力很强。我真的太意外了,不管是客套话还是真心的,不管最终通过还是没通过,这些都不重要了,我应该立刻停止对自己所有的自我怀疑,投入到更深入的学习中。
感激一面的面试官让我有可以和大佬学习的机会,更感激大佬的肯定和学习建议,真心希望钉钉可以越做越好,大佬早日p10。
标签:className,面试官,二面,暑期,dark,token,3.30,实习,change From: https://www.cnblogs.com/ivy225/p/17274673.html