5.30面试

72 阅读2分钟

异步组件

1.  flex布局 flex-grow,   flex-shrink , flex-basic, align-self()

2. css中的 BFC 块级格式化上下文      使用场景

2.  算法   <>{}[]   [<>]   返回true           <] 返回  false 

3.  vue2生命周期 vue3 生命周期区别

 beforeCreate 通常用于插件开发中执行一些初始化任务

created 组件初始化, 可以访问数据 , 请求数据

mounted dom已创建, 可以访问数据和dom元素, 访问子组件

beforeupdate 数据更新, 但是视图还没有更新

beforeunmounted 实例被销毁前调用. 移除全局事件, 清除定时器

4.  重绘回流   区别以及怎么优化

回流是布局更新。 重绘是样式发生改变不影响布局

  • 使用 visibility 替换 display: none ,因为前者只会引起重绘,后者会引发回流(改变了布局)

  • 避免频繁操作样式

  • 避免频繁操作DOM

  • 对具有复杂动画的元素使用绝对定位,

5. webpack优化 ()

6. 项目亮点, 难点

6. 组件通信(1.  父子,属性绑定, props接收 ,2.  跨组件 eventBus , 触发监听,  3. 获取组件实例ref , 4. provider ,inject ,依赖注入传递属性方法 , 5. vuex 全局状态管理工具 , 统一管理 )

7.长连接/长轮询 ,  高并发

8.promise , proxy

9. 商场秒杀, 拼团

10. 基本数据类型 , 深浅拷贝(JSON序列化, 递归拷贝新对象) , 

JSON序列化处理null和undefined, 不进行处理

11. 浏览器从输入 url 到渲染数据

一、URL解析,  

如果URL中有文字就必须编码后使用 ,  

浏览器在发送请求之前先检查有没有缓存缓存检查

二 、进行DNS域名解析

浏览器通过域名发起一个网络请求的时候, 会有DNS服务器将域名解析成ip地址

1. 浏览器缓存检查中有没有域名对应的ip地址,

2.那么就检查操作系统的本机hosts文件

3.本地区DNS域名服务器(LDNS)发起请求

4.如果LDNS也不能解析,那么就直接到根域名服务器请求解析

三 、TCP协议

三次握手建立连接、客户端发送请求 , 服务器相应数据 ,  四次挥手断开连接的过程

四 、浏览器解析并渲染响应内容

浏览器拿到文件后(拿到的是一些字节码)通过编码方式(一般是utf-8)转换为对应的字符

浏览器至上而下解析文档,遇见HTML标记,调用HTML解析器, 遇见style/link标记,调用CSS解析器处理CSS标记并构建CSSOM样式树, 遇见script标记,调用javascript解析器处理,绑定事件、修改DOM树/CSS树等; 合并成一颗render树 ,  如果用户操作页面,会触发重排和重绘