目录
1.vue
2.react
2.离职原因
3.提问环节
4.加班
5.职业规划
6.期望薪资
7.你的缺点
8.谈项目经历
1.1真实dom,虚拟dom渲染原理,diff算法如何理解,渲染过程,生命周期的什么阶段,Key的作用
真实dom上ast生成,vdom是一个js对象,diff算法对比过程?更新dom触发render函数,通过diff算法,getter方法会被调用,setter通知wather组件实例,进行页面的重绘,回流。created声明周期dom没有生成,但是有实例的this,mounted函数可以获取真实dom。
key的作用作为唯一标识,来进行内容改变的时候,真实dom进行更新
为什么不能用inde作为key,做数据进行逆序增加,删除的时候会没必要的更新,或者进行输入类的dom的时候界面显示有问题
如果内容不改变,只是dom的顺序改变,vue将会怎么更新渲染?
vue是异步更新dom,按照一定的策略更新,什么策略?vue中的数据更新不是立即的,而是异步更新,意味着数据变化的所有事件会进入一个队列之中,wacther的多次触发,只会进入队列一次,然后在下一次是事件循环里面vue会进行队列的执行,并且刷新队列。
1.2异步方面,nexttick使用,整个事件循环的机制,过程
事件循环可以理解为js是单线程的,一次只能执行一个任务,当多个任务同时执行,会导致阻塞,把数据等计算过程较慢的进行异步队列,等主线程代码块执行完,再执行队列任务,再循环执行点击事件,以及后续的异步任务。
1.3数据传递方面,vuex,pinia区别
vuex中的state的作用,用于存放组件之间共享的数据。单一的状态树,可以传递给所有的父子组件。每个应用只有一个实例,vuex可以获取组件在任何状态下的快照。
vuex::mvvm架构,发布监听者的模式,state->getter()=>mutation(commit('xxx'))->action(dispatch({}))->改变state->view
pinia:state->getter->action 可以直接改变state. 更轻量化,简洁 storeToRefs进行数据结构
$patch 进行多个state同时修改
1.4vue实现按需加载路由或者组件
webpack中提供了require.ensure( )来实现按需加载
requrie.ensure([],()=>require('src'))
1.5data为什么是一个函数
保证函数是独立可复用的,每次实例化一个组件的时候,都是可以生成一个data对象的,相互之间不干扰。
1.6如何用vue-cli自定义组件
1,定义组件
2,import 导入组件,传递参数喝方法
3,components定义组件,在template引入
4,全局组件vue.component()
1.7watch和computed的区别
区别 | watch | computed |
场景 | 一个数据影响多个数据 | 一个数据受到多个数据影响 |
功能 | 不需要return | 必须return |
缓存 | 没有缓存 | 有缓存 |
初始化 | 添加immediate:true | 默认立即执行 |
是否异步 | 支持 | 不支持 |
功能 | 监听 | 计算属性 |
1.8vue的响应式的系统是怎么样的
每个vue组件都有一个与之对应的watcher实例,vue的data上的属性会被添加到getter,setter中,然后进行所有变动的data的依赖收集,通知每个依赖的data的组件调用render方法进行更新
v-model 父子组件中的使用
slot插槽的使用
1.9性能优化方面
1,http减少请求数
2,组件封装
3,js写在后面,html,css写在前面
4,压缩
5,缓存
6,打包优化
7,工程管理
8,可复用,低耦合高内聚,降本增效
9,懒加载,预加载
10,路由懒加载
11,cdn技术,iconFont图标
1.10模块化
5,amd 异步打包机制 js前端 define(['dep1', 'dep2'],function(dep1,dep2){
return function(){}
})6,cmd 同步的 moudle.exports= {} require() js后端
7,umd 通用模块定义 webpack打包机制 umd
8,esm es6打包机制 esm import export
1.11算法
1,冒泡排序,快速排序算法
2,数组、字符串、链表、栈、队列、哈希表、二叉树、堆、递归、深搜广搜、动态规划基础题,最好每个类型做几道常见题练练手感
3,浏览器获取地址栏参数
4,反转数字
5,数组降纬
6,回文字符串
7,场景题:数字递增,暂停,继续功能;函数式组件实现井子棋
8,状态提升,
1.12协议
http协议
tcp协议 三次握手 四次挥手
1,客服端发送 syn=1 seq =x 服务端 发送ack = x +1 syn=1 seq= y 客服端发送ack报文 ack=y+1 syn=0 seq =z
2,主动方 发送 fin=1 seq =x ack = z 被动方发送ack = x +1 seq =z 被动方再发送 ack = y fin =1 seq = z 主动方发送 ack = y seq = x
为什么是三次握手不能是两次?
防止攻击,防止发生死锁
为什么是四次挥手?
防止数据包丢失,FIN和ACK报文是分开发送的
等待2msl才CLOSED?
等待发送数据包完成,防止重复在在旧ip和端口建立重复的分组
各网络层对应的工作设备:
物理层:中继器、集线器
数据链路层:网桥或交换机
网络层中继系统:路由器
网络层以上的中继系统:网关
1.13Websocket
1,全双工的协议
2,如何进行心跳监听
3,有线网切换wifi是否断开,wifi切换有线网是否断开
4,原理是什么
1.14路由守卫
1,hash路由和history路由的区别
2,全局路由守卫和各个子组件的路由守卫是什么?哪些路由守卫是各自独有的?
3, 路由的原理是什么
2.1事件处理机制,事件委托
事件机制。捕获 冒泡 目标 事件冒泡到document地方,react进行重写了事件默认冒泡方式,使用dispatchEvent进行事件派发,systheicEvent总的事件委托,事件冒泡和事件捕获的区别?react怎么实现事件捕获,默认是事件冒泡。
2.2dom渲染过程
1,jsx语法 底层是react.createElement() ,
2,递归渲染和fiber架构渲染的区别?
3,怎么做渲染的性能优化?
4,scu和hooks语法分别怎么去做组件的性能优化?
5,scheduler.postTask的实现过程和兼容性问题
6,requestIdleCallback是干嘛的?接受的参数和作用?
2.3函数式组件。hooks
1,函数式组件和class组件的对比?
2,useMemo和react.memo的区别
3,useEfffect和useLayoutEffect的区别
4,怎么优化性能,useMemo和useCallBack如何使用
5,数据是如何保存的?如何更新的?底层实现过程是怎么样的?
6,react生命周期的UNSAFE_前缀的含义?为什么导致重复渲染?导致死循环?
7,getSnapshotBeforeUpdate的作用?与componentDidUpdate的关系?
8,
2.4react架构的原理
1,数据层面的架构变化(实现方式是什么?)
2,渲染层面的性能提升
3,声明周期方面的控制
4,数据传递方面的优化
5,HOC和组合式组件的区别?
2.5redux的原理和实现过程
1,mvvm和mvc的区别
2,redux实现异步
3,redux和react-redux的区别
4,connect高阶组件接受的参数和作用
1,上一家公司是小公司,公司业务流程规范性比较低,自己想去大公司学习更加规范的业务流程,也有利于个人的发展
2,之前呢,公司只做国内业务,不做海外业务,我了解到贵司在做海外业务,我希望能开阔一下个人的视野
3,之前的公司做的业务是助贷相关的,后续会受到国家助贷管理办法的约束,不利于个人发展,担心随时可以被优化,不符合个人的职业规划,自己想去一个稳定的行业能够踏踏实实做事。
您觉得一个优秀的员工需要具备哪些特质呢?
公司的团队规模和目前所做的业务是什么?
我的主要工作职责是什么?
请问公司的晋级制度是怎么样的呢,对于表现优秀的员工会有怎么样的激励制度呢?
新员工在两到三年内会有怎么样 的发展呢?
这份工作对于新人最大的挑战是什么呢?
您觉得应该怎么应对挑战呢?
如果是工作需要的话,我会义不容辞的加班,我目前是一个人,没有负担,可以全身心的投入到工作中,但是同时我也会提供开发效率,减少不必要的加班
学习:在学习方面,我打算深入研究vue3源码和白帽子的web安全理论,两年内完成vue3源码的系列专栏,和web安全方面的系列专栏
工作:在工作方面,打算在技术方面有所突破,在web前端领域成为技术专家
管理岗位 :如果后续公司有管理岗位的机会啊,待能力成熟时,希望能够带领团队
希望公司能够根据我个人的开发年限和经验,结合市场的标准给予我合理的薪水
1,个人底线薪资
2,期望薪资在底线薪资上浮20%
3,工作年限薪资区间
我个人比较重视细节,在前端开发过程中不可避免的浪费了一部分时间,后面我通过时间管理,先做框架,完成整体流程,后面在优化细节,探讨原理,总结经验完成了对于工作时间的把控。
我这个人不太懂的拒绝别人,导致工作很累,通过多任务处理能力将任务排序,将手头的工资高进行排序,给出帮助同事的时间,然后让同事自行决定是否需要帮助。
1,STAR法则
STAR法则是情境(situation)、任务(task)、行动(action)、结果(result)四项的缩写。
在什么场景下,接到了什么任务,我做了哪些工作,最后的结果是什么。
多用数据,更有说服力。
微前端项目的实现过程