当前位置: 首页 > Web前端 > HTML5

中兴面试总结

时间:2023-04-05 00:17:59 HTML5

感谢朋友的介绍,特地去中兴面试,做了一个简单的总结。一、Vue的渲染机制答:这个问题在面试的时候经常会提到。它可能不是vue或其他(反应)。angular之前的版本使用的是脏值检测的方式,现在都倾向于数据劫持&释放的模式订阅者模式在es5中有一个功能就是我们的Object.defineProperty。对这种方法感兴趣的同学请点击https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty)2.vue的生命周期相信大家比较多意识到这一点。beforeCreate->在实例初始化之后,数据观察者和事件/观察者事件配置之前被调用。created->在创建实例后立即调用。在这一步中,实例完成了以下配置:数据观察者、属性和方法的操作、watch/event事件回调。但是,挂载阶段尚未开始,$el属性当前不可见。beforeMount->在挂载开始之前被调用:关联的渲染函数被第一次调用。mounted->el被新创建的vm.$el代替,这个hook在挂载到实例上后被调用。如果根实例挂载一个文档内元素,当挂载时调用vm.$el也会在beforeUpdate->文档中的数据更新中调用,在虚拟DOM被修补之前。这适用于在更新之前访问现有的DOM,例如手动移除添加的事件监听器。服务器端渲染时不会调用这个钩子,因为服务器端只会更新初始渲染->虚拟DOM因数据变化而重新渲染和打补丁,之后会调用这个钩子activated->keep-alive组件激活时调用。当在服务器端渲染期间没有调用deactivated->keep-alive的情况下停用组件时,将调用此挂钩。服务器端渲染期间不会调用此挂钩。beforeDestroy->在销毁实例之前调用。在这一步,实例仍然完全可用。destroyed->在Vue实例被销毁后调用。调用后,Vue实例所指示的一切都将被解除绑定,所有事件监听器将被移除,所有子实例将被销毁。errorCaptured->在捕获来自后代的错误时调用。该挂钩接收三个参数:错误对象、发生错误的组件实例以及包含错误来源信息的字符串。该钩子可以返回false以防止错误进一步向上传播。3、什么情况下vue在数据变化时不会触发view去更新v-for遍历的数组。当数组内容使用arr[0].xx=xx改变数据时,vue无法监听vm.arr。length=newLength也是检测不到的4.性能优化减少http请求,合理设置HTTP缓存使用浏览器缓存启用压缩CSSSpritesLazyLoadImagesCSS放在页面顶部,javascript放在页面底部尽量避免使用eval和持续更新的功能···