VUE3基础

390 阅读1分钟

VUE2与VUE3的比较

  • 大量API挂载在VUE的对象原型上
  • VUE3的Template支持多个根标签,VUE2不支持

一、setup()函数

setup()函数是vue3中,专门为组件提供的新属性。setup()函数会在beforeCreate之后,created之前执行,vue3也取消了这两个钩子函数,统一用setup()代替,setup()相当于一个生命周期函数,vue2以前的data,watch,computed等全部用setup()代替。

setup(props){
    return {
        
    }
}
  • props用来接收props数据
  • 在vue3中没有this,值为undefined
  • 返回值:return{},返回响应式数据

二、reactive()函数

reactive()函数,接收一个普通对象,创建出来之后,在setup()中return出去,直接在template中调用即可。

<template>
     <div>
         {{name}} // test
     </div>
<template>

<script>
import { reactive, ref } from  'vue';
export default{
    setup() {
        const state = reactive({
            name:  'test'
        });
        return {
            state
        }
    }
};
</script>

三、ref()函数

ref()根据给定的值来创建数据对象,ref()函数返回值是一个对象,在setup()内部访问ref()函数的时候加上.value。

<template>
     <div>
         {{count}} // 10
     </div>
<template>

<script>
import { reactive, ref } from  'vue';
export default{
    setup() {
        const count = ref(10)
        return {
            count
        }
    }
};
</script>

四、toRefs()函数

toRefs()函数可以将reactive()创建出来的响应式对象,转换为普通的对象。

<template>
     <div>
         {{state}} // test
         {{age}}  //  21
     </div>
<template>

<script>
import { reactive, ref } from  'vue';
export default{
    setup() {
        const state = reactive({
            name:"test"
        })
        const age = ref(21)
        return {
            ...toRefs(state),
            age
        }
    }
};
</script>

五、computed()

该函数用来创造计算属性,和vue2一样,它返回的值是一个ref对象。

<template>
     <div>
         {{count}} // test
     </div>
<template>

<script>
import { computed, ref } from  'vue';
export default{
    setup() {
        const num = ref(1)
        const count = computed(()=>{
            return num.value+1
        })
        return {
            count
        }
    }
};
</script>