vue面试题整理(一)

9 阅读3分钟

Vue3的 watch 和 watchrffect 有何区别?

watch 需要明确指定依赖,而watcheffect会自动收集依赖。

Vue 3 的响应式系统和 React Hooks 相比有何优势?

Vue3的响应式系统和 React Hooks 都是用于构建现代 Web 应用程序的强大工具,但它们在设计、实现细节和使用场景上有一些不同。

易用性和学习曲线:
  1. 直观性: Vue 的响应式系统通常更直观,特别是对于不熟悉函数式编程概念的开发者来说。

  2. 语法糖: Vue 提供了更多的语法糖(例如,v-model,v-for 等),这使得模板代码更易读和理解。

粒度和优化:
  1. 细粒度响应式: Vue3使用 Proxy机制来跟踪每个属性的依赖关系,这使得系统能够精确地知道哪些组件需要重新渲染,这可能导致更高的性能。
  2. 优化重新渲染:由于更精细的依赖跟踪,Vue 通常只会更新实际更改的部分,而 React 可能需要使用额外的优化(例如, React.memo、useMemo 和useca11back)来达到相同的效果。
数据处理:

1.响应式对象: 在 Vue 中,整个对象或数组可以是响应式的,这使得复杂状态管理更容易实现。

2.内置深度响应式: Vue 内置支持深度响应式,而在 React 中,你通常需要使用额外的库或手动处理。

构建和工具链:

1.模板 vs JSX: Vue 的模板语法可以通过编译时优化来提高性能,而 JSX 则更依赖运行时。

2.单文件组件:Vue 的单文件组件将模板、脚本和样式组合在一个文件中,这对于组件的封装和管理有好处。

状态管理:

  1. Vue 的响应式系统+ Vuex: Vuex 与 Vue 的响应式系统紧密集成,提供了一种更一致和全面的状态管理解决方案

  2. 计算属性: Vue 的计算属性(computed )是响应式依赖的一种强大方式,它自动跟踪依赖并只在需要时重新计算。

选择哪一个取决于你的具体需求、团队经验以及项目类型。

v-model 的双向数据绑定实现

Vue3中的 v-mode1指令用于实现双向数据绑定,主要用在表单元素和自定义组件中。它是语法糖,背后实际上是一个组合了属性绑定和事件监听的机制。以下是其工作原理:

  1. “*属性绑定":v-mode1 在内部会将变量绑定到元素或组件的某个属性上。对于原生 HTML元素(如input),通常会绑定到 value 属性。

  2. 事件监听:同时,v-mode1 也会自动添加一个事件监听器,用于捕获用户输入或改变。对于元素,inoput 这通常是 input 事件。

  3. 组合:结合上述两个步骤,v-model-"somevar"实际上是以下两个操作的缩写:

  4. 自定义组件:在自定义组件中,v-mode1的行为也是类似的,默认情况下,它会绑定到组件的 modelva1ue属性,并监听组件的 update:modelvalue 事件。但你也可以自定义 prop 名称和事件。

  5. 响应式更新: 由于 Ve 的响应式系统,当数据变量(在这里是 somevar)改变时,所有与之绑定的 U1元素也会自动更新。反之,当 U元素触发绑定的事件(如input )时,数据变量也会被更新。

通过这种方式, v-mode1 实现了数据和视图之间的双向绑定,使得开发者能以更直观和简洁的方式管理ui状态。