Vue面试精要:钩子函数、数据类型与渲染策略
需积分: 5 200 浏览量
更新于2024-08-04
收藏 97KB MD 举报
"面试题总结,包括Vue框架、JavaScript基础知识、数据类型、防抖与节流、继承方式以及宏任务和微任务的区别,还有SSR与SPA的对比"
Vue.js是前端开发中的一个流行框架,其路由系统是实现页面跳转的关键部分。在Vue Router中,页面跳转会经过两个全局导航守卫:`beforeEach`和`afterEach`。`beforeEach`在每次路由变化前执行,常用于权限验证或数据预加载。`afterEach`则在每次路由变化后执行,适用于全局的页面更新或性能优化。此外,还有组件内的守卫`beforeRouteEnter`,它在组件实例创建之前运行,特别适用于数据预加载。
在数据响应式方面,Vue区分了计算属性(computed)和观察者(watch)。计算属性在依赖的数据发生改变时自动重计算,如果数据没有改变,它将返回缓存的结果,不进行额外计算。而watch则更像事件监听器,当指定的属性变化时,执行对应的回调函数,适合于一对多的数据监听和异步操作。
JavaScript的数据类型分为值类型和引用类型。值类型包括字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)以及ES6引入的Symbol。引用类型如对象(Object)、数组(Array)和函数(Function)则是存储在堆内存中,通过引用访问。
防抖(debounce)和节流(throttle)是优化性能的常见技巧。防抖函数确保在特定时间间隔内,只执行最后一次调用,如果在这期间再次触发,会重新计时。节流函数则保证在设定的时间间隔内,无论触发多少次,都只执行一次。
JavaScript的继承方式多样,包括原型链继承、构造函数继承、组合继承(结合了原型链和构造函数)、原型式继承、寄生式继承以及寄生组合式继承。其中,寄生组合式继承被认为是最佳实践,因为它避免了构造函数的重复调用。
宏任务(macrotask)和微任务(microtask)是JavaScript异步执行的两种机制。宏任务包括script、setTimeout/setInterval、UI渲染、postMessage等,它们按照事件队列的顺序依次执行。微任务如MutationObserver、Promise回调、process.nextTick(Node.js)等,会在当前宏任务结束后,但下一个宏任务开始前执行,优先级更高。
最后,服务端渲染(SSR)和客户端渲染(SPA)是两种不同的应用实现方式。SSR是在服务器端完成HTML渲染,然后发送给客户端,有利于SEO和首屏加载速度。SPA则主要在客户端进行页面跳转和渲染,提供更好的用户体验,但不利于SEO和初始加载性能。
2021-10-30 上传
2023-08-11 上传
冲冲冲啊!
- 粉丝: 1
- 资源: 1
最新资源
- 掌握Jive for Android SDK:示例应用的使用指南
- Python中的贝叶斯建模与概率编程指南
- 自动化NBA球员统计分析与电子邮件报告工具
- 下载安卓购物经理带源代码完整项目
- 图片压缩包中的内容解密
- C++基础教程视频-数据类型与运算符详解
- 探索Java中的曼德布罗图形绘制
- VTK9.3.0 64位SDK包发布,图像处理开发利器
- 自导向运载平台的行业设计方案解读
- 自定义 Datadog 代理检查:Python 实现与应用
- 基于Python实现的商品推荐系统源码与项目说明
- PMing繁体版字体下载,设计师必备素材
- 软件工程餐厅项目存储库:Java语言实践
- 康佳LED55R6000U电视机固件升级指南
- Sublime Text状态栏插件:ShowOpenFiles功能详解
- 一站式部署thinksns社交系统,小白轻松上手