2020-06-10 22:54:24
项目角色
项目难点
为什么选vue
vue和react区别:React采用虚拟DOM,通过JSX语法描述UI,数据驱动视图更新,单向数据流;Vue也使用虚拟DOM,模板语法更接近传统HTML,双向数据绑定更便捷,上手相对容易。
vue数据绑定原理:通过Object.defineProperty()(Vue2)或Proxy(Vue3)对数据进行劫持,当数据变化时通知视图更新。
vue在get和set里面做了什么:get收集依赖,set触发更新。
jquery和vue的差别:jQuery直接操作DOM,通过选择器查找元素进行操作;Vue数据驱动视图,开发者只需关注数据变化。
vue好在哪:简单易用,双向数据绑定方便,组件化开发提高代码复用性,生态丰富。
vue性能方面有什么提升:虚拟DOM减少直接操作DOM的开销,异步渲染优化性能。
vue的diff算法:通过同级比较、key值羡吵优化等方式,尽量复用DOM节点,减少不必要的更新。
vue对于数组的数据劫持:重写数组的变异方法,如push、pop等,在调用这些方法时触发更新。
vue给data添加新属性会发生什么,会发生相应改变吗:直接添加新属性不会触发视图更新,需使用Vue.set或this.$set方法。
事件循环
settimeout实现setIntervel:通过递归调用setTimeout模拟setInterval,可避免setInterval可能出现的连续执行问题。
闭包
promise的了解,promise的then为什么在settimeout的then之前:Promise的then回调是微任务,setTimeout的回调是宏任务,微任务优先于宏任务执行。
跨域方式:包括代理、JSONP、CORS等。
代理怎么实现跨域的:通过在服务器端设置代理,将前端请求转发到目标服务器,避免浏览器同源策略限制。
css两列布局(左固定右自适应):可使用浮动、flex布局、grid布局等方式实现。
css3新增选择器,选择最后一个节点,和奇节点:last-child选择最后一个节点,nth-child(odd)选择奇节点。
vue双向绑定原理:同远景面试中vue数据绑定原理相关内容。
如何确保更新之后再操作DOM:使用Vue的nextTick方法,在下次DOM更新循环结束后执行回调。
虚拟DOM
原型链讲一下:每个对象都有原型对象,原型对象也有自己的原型,形成原型链,用于实现继承。
原型继承
new的过程:创建新对象,将新对象的原型指向构造函数原型,执行构造函数代码,返回新对象。
css盒模型,区别:包括标准盒模型和IE盒模型,标准盒模型宽度只包含content,IE盒模型宽度包含content、padding和border。
c3盒模型定义属性,默认值:box-sizing属性,默认值为content-box(标准盒模型),border-box为IE盒模型。
http方法,常见状态码
get和post区别:get用于获取数据,参数在URL中;post用于提交数据,参数在请求体中。
数据库join,innerjoin区别:join包括内连接、外连接等,innerjoin即内连接,只返回匹配的行。
数据库脏读:一个事务读取了另一个未提交事务修改的数据。
纯前端吗,有意向后台吗
osi七层协议,http tcp分别哪层,应用层具体做什么:http在应用层,tcp在传输层;应用层负责处理饥旁特定的应用程序细节。
http2.0提升:多路复用、头部压缩兄肢侍、服务器推送等。
https实现过程:包括证书颁发、密钥交换、数据加密传输等步骤。
https请求过程中客户端和服务端约定对称加密方法是在哪一步:在SSL/TLS握手过程中。
手撕url参数按首字母排序,不可sort:可通过遍历参数对象,提取键并按首字母排序后重新拼接。
问项目
css动画实现一个点加速中间再减速到右边运动曲线属性:可使用cubic-bezier函数定义运动曲线。
webpack打包流程:包括入口文件分析、依赖解析、模块编译、代码生成等步骤。
css最难点
项目中跨域
项目中最难点
组件传值,一层和多层:一层可通过props传值,多层可使用事件总线、Vuex等方式。
border属性定位
vue生命周期
项目难点