哔哩哔哩 T2实习生一面面经
-
自我介绍
-
在校期间做过那些项目?
-
中小学生心理测评管理系统
-
团队考试和签到系统
-
西南油气田公司实验性项目
-
实时通讯聊天应用
-
一些小程序。。。。
-
-
说一下聊天项目的架构?
-
React Hooks开发页面逻辑,Webpack构建,DvaJS 状态管理,Ant Motion动画。。。。(不知道该说啥,就随便说说用了什么,呜呜呜)
-
-
DvaJS的核心概念?
-
State、Reducers(修改状态)、effects(异步操作)、Subscribe(监听路由,开启对Socket回调的监听)
-
-
用Ant Motion做了那些动画?
-
好友列表、对话列表和消息列表的入场和出场的队列动画
-
-
自己写没写过CSS3的动画?
-
Vue路由切换的过渡动画之类的(肯定写过啊,男孩子不能说自己不行)
-
-
那这个项目在代码规范层面做了什么?
-
EsLint、Prettier、Git提交规范等
-
-
怎么实现的未读消息记录,分别在什么时候加载?
-
用Redis暂存指定用户的未读消息数和最新的消息内容,在初次访问聊天页面的,随着好友列表渲染一次,在接收到新的消息后,更新来自对应用户的未读消息数
-
在切换到拥有未读消息的好友聊天窗口时,清空redis中的数据,以便下次记录
-
-
为什么要用better-scroll?
-
为了发送新消息时或者接收到新消息时,页面滚动更流畅,切换聊天窗口的时候,视图窗口回到页面顶部
-
-
better-scroll实现滚动的原理?
-
父元素固定高度,设置overflow属性隐藏溢出的子元素,子元素的高度需要大于父元素,这个时候better-scroll所指定的容器就能滚动(记得看官网这么说的,不晓得是不是,阿巴阿巴)
-
-
怎么实现的同时在线的客户端好友列表同步?
-
用SocketIO结合Koa服务器作为双方通信的桥梁,结合发布订阅和DVA状态管理刷新视图
-
-
图片资源怎么处理,用了什么缓存?
-
上传前压缩图片,通过七牛云管理所有的图片资源,使用serviceworker用作静态资源缓存
-
-
为什么Vue3不兼容IE8?
-
Vue3大量使用了ES6的语法,例如响应式处理改用Proxy,通过Reflect读写代理对象属性,通过Set收集视图依赖,Map创建代理对象属性与Set依赖的映射关系
-
-
你提到了ES6,那么ES6中的Promise的链式回调与async await将多个Promise串行化,这两种方式有啥区别?
-
可读性问题,代码组织性,错误处理啥的
-
-
Call、Apply、Bind方法的区别?
-
Call、Apply方法直接执行函数,但是传入第二个参数不同,Call函数传入参数列表、Apply函数传入一个数组或者类数组
-
Bind方法返回一个新的函数,调用Bind方法和返回函数的参数会进行合并,并且Bind作为构造函数调用,this会指向创建的实例
-
-
Vue2的Options APi与Vue3的Composition API有啥区别?
-
对于this的依赖程度,同一功能模块的代码组织性,对TS的支持性
-
-
Vue中的路由拦截怎么做的?
-
全局前置函数中,通过to和next参数,按照当前用户权限对路由重定向
-
-
浏览器本地存储的区别?
-
生命周期不同,数据持久性不同,别的好像没啥区别,淦
-
-
Vue的diff算法
-
记不太清,大概巴拉了一下
-
-
Vue3的setup中可以使用this吗?
-
达咩,setup函数执行很早,此时Vue实例还未被创建,不能使用this
-
-
TS中interface和type的区别
-
interface侧重对数据结构的描述,type侧重与类型关系
-
多个同名interface声明可以合并,type可以定义联合类型、交叉类型、元组和基本类型别名,通过in来迭代类型键名,生成映射类型
-
-
Webpack和Vite的区别
-
Webpack在开发和生产环境下,都需要先打包构建,才能运行
-
Vite在开发环境下不需要打包,通过浏览器原生支持的ESmodule加载模块,所以启动速度很快
-
打包时使用RollUp打包,并默认做了很多优化配置,例如压缩,tree-shaking啥的
-
-
使用Vue3遇到了那些坑?
-
大多数主流UI库对于Vue3的支持还不是那么好
-
写项目那会儿,VueCharts不能用在Vue3,好气
-
Vue3版本迭代比较快,项目才写完,又有了新的语法糖,真就为方便而生
-
-
B站用了多久?
-
四年老用户,成熟的五级号
-
-
平时用B站干什么,有关注B站PC端的banner内容吗?
-
看动漫、鬼畜、学习视频,里面个个都是人才,说话又好听
-
关注呀,去年那个banner图有春夏秋冬四个版本
-
-
反问