vue2和vue3 面试题

 1.请阐述vue2的响应式原理

简单描述---首先遍历对象的每一个属性然后通过object.defineProperty把每一个属性变成getter和setter 函数,render函数在运行的时候用到了响应式数据于是收集了依赖,当数据变换的时候会通知watcher--watcher会重新运行render函数

深入描述-- 首先把原始对象交给observer 他会把他变成一个响应式对象具有getter和setter,Vue会为响应式对象中的每个属性、对象本身、数组本身创建一个Dep实例突然有一个函数要执行(比如render函数)但是他不是立即执行,他会交给watcher来执行,watcher会设置一个全局变量,让全局变量记录当前负责执行的watcher等于自己然后再去执行函数,在执行的过程中用到了响应式对象的属性,这个属性就会被dep实例收集依赖,如果某个操作改变了数据就会派发更新,通知刚刚记录的watcher,告诉他我变了,watcher不会立即执行这个函数,因为他可能会触发很多次,所以会把自己交给一个调度器,调度器会把这个watcher添加到队列里面,然后会把队列里面的函数交给nextTick,nickTick里面函数都在微队列里面,所以等同步代码执行完了就会进入微队列异步的执行里面的函数,执行到这个watcher的时候,会重新运行render函数

 2.计算属性和方法有什么区别

计算属性本质上是包含getter和setter的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是一些 Vue2 和 Vue3 相关的面试题: 1. Vue2 和 Vue3 有哪些主要的区别? 答:Vue3 的主要改进点包括:更快的渲染速度、更小的包大小、更好的 TypeScript 支持、更好的组件封装、更好的响应式 API 等。 2. 在 Vue2 中,computed 和 watch 的区别是什么? 答:computed 是计算属性,用于根据已有的数据计算出一个新值,常用于模板中。而 watch 则是监听一个数据的变化,当数据变化时,执行相应的操作。 3. Vue2 中,什么是 mixin?如何使用 mixin? 答:mixin 是一种可重用的组件选项,可以在多个组件之间共享。可以通过在组件中使用 mixins 选项来使用 mixin。 4. Vue2 中,什么是 keep-alive?如何使用 keep-alive? 答:keep-alive 是 Vue 内置组件,用于缓存组件的状态或避免重新渲染。可以通过在组件外包裹一个 <keep-alive> 标签来使用 keep-alive。 5. Vue3 中,什么是 Composition API?它有什么优点? 答:Composition API 是 Vue3 中引入的一种新的 API,用于更好地组织和重用组件逻辑。它的优点包括:更好的代码组织、更好的类型推断、更好的逻辑复用等。 6. Vue3 中,什么是 Teleport?如何使用 Teleport? 答:Teleport 是 Vue3 中引入的一种新的组件,用于将组件挂载到指定的 DOM 元素上,可以用于实现模态框等场景。可以通过在组件中使用 <teleport> 标签来使用 Teleport。 7. Vue3 中,什么是 reactive?如何使用 reactive? 答:reactive 是 Vue3 中引入的一种新的响应式数据类型,用于对数据进行监听和响应。可以通过在组件中使用 reactive 函数来创建 reactive 对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小兔子的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值