Vue3知识整理

vue3考点概述

面试题

  • vue3比vue2有什么优势
  • 描述vue3生命周期
  • 如何看待composition API 和options API
  • 如何理解ref toRef 和 toRefs
  • vue 3升级了哪些重要的功能
  • Composition API如何实现代码逻辑的复用
  • vue3 如何实现响应式
  • watch 和 watchEffect 的区别是什么
  • setup中如何获取组件实例
  • vue3为何比vue2快
  • vite是什么
  • composition API 和 ReactHooks的对比

思维导图

在这里插入图片描述

1.vue3比vue2有什么优势

  • 性能更好
  • 体积更小
  • 更好的TS支持
  • 更好的代码支持
  • 更好的逻辑抽离
  • 更多新功能

2.vue3生命周期

  • vue3
<script>
import {
    onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted } from 'vue'

export default {
   
    name: 'LifeCycles',

    props: {
   
        msg: String
    },

    // 等于 beforeCreate 和 created
    setup() {
   
        console.log('setup')

        onBeforeMount(() => {
   
            console.log('onBeforeMount')
        })
        onMounted(() => {
   
            console.log('onMounted')
        })
        onBeforeUpdate(() => {
   
            console.log('onBeforeUpdate')
        })
        onUpdated(() => {
   
            console.log('onUpdated')
        })
        onBeforeUnmount(() => {
   
            console.log('onBeforeUnmount')
        })
        onUnmounted(() => {
   
            console.log('onUnmounted')
        })
    },

   
}
</script>
  • vue2
 beforeCreate() {
   
        console.log('beforeCreate')
    },
     created() {
   
        console.log('created')
     },
     beforeMount() {
   
         console.log('beforeMount')
     },
     mounted() {
   
         console.log('mounted')
     },
    beforeUpdate() {
   
        console.log('beforeUpdate')
     },
     updated() {
   
       console.log('updated')
   },
    // beforeDestroy 改名
     beforeUnmount() {
   
        console.log('beforeUnmount')
     },
   // destroyed 改名
     unmounted() {
   
        console.log('unmounted')
     }

3.composition API 对比options API

composition API 带来了什么

  • 更好的代码组织
  • 更好的逻辑复用
  • 更好的类型推导

options API又叫选项API,以vue为后缀的文件,通过定义methods,computed,watch,data等属性与方法,共同处理页面逻辑,如下图:

在这里插入图片描述
Composition API又叫组合式API,组件根据逻辑功能来组织的,一个功能所定义的所有 API 会放在一起(更加的高内聚,低耦合)即使项目很大,功能很多,我们都能快速的定位到这个功能所用到的所有 API
在这里插入图片描述

如何选择?

  • 不建议共用,会引起混乱
  • 小型项目,业务逻辑简单,用Options API
  • 中大型项目,逻辑复杂,用Composition API

4.如何理解ref toRef 和 toRefs

ref

  • 生成值类型响应式数据
  • 可用于模板和reactive
  • 通过.value修改值
  • 获取模板dom元素
<template>
    <p>ref demo {
   {
   ageRef}} {
   {
   state.name}}</p>
</template>

<script>
import {
    ref, reactive } from 'vue'

export default {
   
    name: 'Ref',
    setup() {
   
        const ageRef = ref(20) // 值类型 响应式
        const nameRef = ref('双越')

        const state = reactive({
   
            name: nameRef
        })

        setTimeout(() => {
   
            console.log('ageRef', ageRef.value)

            ageRef.value = 25 // .value 修改值
            nameRef.value = '双越A'
        }, 1500);

        return {
   
            ageRef,
            state
        }
    }
}
</script>

toRef

  • 针对一个响应式对象(reactive封装)的属性
  • 创建一个ref,具有响应式
  • 两者保持引用关系
<template>
  <p>toRef demo - {
   {
   ageRef}} - {
   {
   state.name}} {
   {
   state.age}}</p>
</template
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值