Vue3测试题
wen 2022/6/14 Vue
# 1. 关于 Vue 3 新特性
- 源码使用 TypeScript 构建;
- 使用静态标记优化了虚拟 DOM 的性能;
- 响应式系统基于 Proxy 实现,性能进一步提升。
# 2. 关于 Vue 中组件共享数据机制
- 父组件给子组件传递数据通过属性 props 传递;
- 嵌套多层的组件传递数据可以通过 provide/inject 实现;
- 全局数据可以通过 app.config.globalProp 设置;
- provide/inject 传递的数据没有内置响应式功能,需要自己封装。
# 3. 关于 option 和 composition 两种语法的优缺点
- option 中的 this 写法不利于 TypeScript 类型推导;
- composition 语法更有利于 Tree Shaking,有利于优化代码的体积;
- 一个组件内部 option 和 composition 语法可以混用;
- script setup 提高了 composition 写法的开发效率。
# 4. 关于虚拟 DOM 的说法
- 虚拟 DOM 本质就是一个 JavaScript 对象,通过这个对象描述项目组件和标签的继承关系;
- 虚拟 DOM 是 React 首创;
- 虚拟 DOM 的核心逻辑就是通过计算两个树的差异去减少 DOM 操作;
- 虚拟 DOM 可以很方便的支持跨端框架。
# 5. 关于 Vuex
- vuex 是 Vue 官网推荐的数据管理框架,和 Vue 框架强绑定。vuex 不可以和 React、Angular 框架配合;
- 项目中组件之间共享的数据可以通过 vuex 实现;
- vuex 是 Vue 的一个插件,内部通过 install 方法在 Vue 上注册了全局变量用来存储数据;
- vuex 中的数据本质上就是响应式数据。
# 6. 关于 Vue 中的弹窗组件
- 弹窗组件的特点之一就是要脱离当前组件,渲染到 body 标签内部;
- 弹窗类组件由很多类型,有全屏显示内容的 Dialog、Modal,也有只通知部分消息的 Notification;
- 弹窗类组件 Notification 可以通过 JavaScript 动态创建去使用,实现的难点就是我们动态创建弹窗的虚拟 DOM,手动进行挂载;
- Vue 的弹窗组件可以使用 slot 进行渲染内容的扩展。