深入探索Java面试题:框架选择与虚拟DOM优缺

0 下载量 52 浏览量 更新于2024-08-03 收藏 26KB DOCX 举报
"Java面试题及答案-共47道" 本资源为Java面试题及答案,共47道,涵盖了Java相关的知识点,包括框架的选择、虚拟DOM的优劣、React的生命周期等。 一、框架的选择 在开发中,选择使用框架而不是原生有很多好处。框架可以带来组件化、天然分层、生态和开发效率等优势。组件化可以使我们的工程易于维护、易于组合拓展。天然分层可以帮助我们进行分层,代码解耦更易于读写。生态可以提供成熟的解决方案。开发效率可以提高,因为现代前端框架都默认自动更新DOM,而非我们手动操作。 二、虚拟DOM的优劣 虚拟DOM有很多优点,包括保证性能下限、无需手动操作DOM和跨平台等。虚拟DOM可以经过diff找出最小差异,然后批量进行patch,这种操作虽然比不上手动优化,但是比起粗暴的DOM操作性能要好很多。虚拟DOM的diff和patch都是在一次更新中自动进行的,我们无需手动操作DOM,极大提高开发效率。虚拟DOM本质上是JavaScript对象,可以进行更方便地跨平台操作。 然而,虚拟DOM也存在一些缺点,例如无法进行极致优化。在一些性能要求极高的应用中虚拟DOM无法进行针对性的极致优化。 三、虚拟DOM实现原理 虚拟DOM的实现原理是基于JavaScript对象的抽象。状态变更时,记录新树和旧树的差异,然后把差异更新到真正的DOM中。 四、React的生命周期 React的生命周期可以分为三个阶段,分别是挂载阶段、更新阶段、卸载阶段。在挂载阶段,constructor是构造函数,最先被执行,我们通常在构造函数里初始化state对象或者给自定义方法绑定this。React16之后,有三个生命周期被废弃(但并未删除),分别是componentWillMount、componentWillReceiveProps和componentWillUpdate。官方计划在17版本完全删除这三个函数,只保留UNSAVE前缀的三个函数。