Vue3 面试题总结1(笔记自用)

目录

1. setup 中如何获取组件实例

2. Vue3 为何比 Vue2 快

3. Vite 是什么

4. Vite 为何启动快

5. Composition API 和 React Hooks 对比


1. setup 中如何获取组件实例

  • 在 setup 和其他 Composition API 中没有 this
  • 可通过 getCurrentInstance 获取当前实例
  • 若使用 Options API 可照常使用 this
<template>
  getInstance
</template>

<script>
import { onMounted, getCurrentInstance } from 'vue'
export default {
  name: 'GetInstance',
  data () {
    return {
      x: 1,
      y: 2
    }
  },
  setup () {
    console.log('this1', this) // undefined

    onMounted(() => {
      console.log('this in unMounted', this) // undefined
      console.log('x in onMounted', instance.data.x) // 1
    })

    const instance = getCurrentInstance()
    console.log('instance', instance)
    // (setup 函数中,实例还没完全初始化,要在 onMounted 中打印 data 值)
    console.log('x in setup', instance.data.x) // undefined
  },
  mounted () {
    console.log('this2', this)
    console.log('x', this.x)
  }
}
</script>

2. Vue3 为何比 Vue2 快

  • Proxy 响应式
  • PatchFlag
  • hoistStatic
  • cacheHandler
  • SSR 优化
  • tree-shaking

3. Vite 是什么

  • 一个前端打包工具,Vue 作者发起的项目
  • 借助 Vue 的影响力,发展较快,和 webpack 竞争
  • 优势:开发环境下无需打包,启动快  

4. Vite 为何启动快

  •  开发环境使用 ES6 Module,无需打包---非常快
  • webpack 需要打包成 ES5
  • 生产环境使用 rollup ,并不会快很多

5. Composition API 和 React Hooks 对比

  • 前者 setup 只会被调用一次,而后者函数会被多次调用
  • 前者无需 useMemo(缓存数据)useCallback(缓存函数),因为 setup 只调用一次
  • 前者无需顾虑调用顺序,而后者需要保证 hooks 的顺序一致
  • 前者 reactive + ref 比后者 useState,要难理解
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值