← 返回首页
Vue3基础教程(十六)
发表时间:2021-08-07 13:13:47
初始setup

1.Composition API介绍

Vue2时的方式在代码很少的时候,逻辑结构还是蛮清晰的,但是随着组件功能越来越多,代码量越来越大,整体内容全部放在其中肯定会显得臃肿。因为每个功能模块的代码会散落分布在各个位置,让整个项目的内容难以阅读和维护。这也导致我们需要考虑用其他方式来维护代码,比如Vuex。 如下图所示:

而到了Vue3,它会根据逻辑功能来进行组织,把同一个功能的不同代码都放在一起,或者把它们单独拿出来放在一个函数中,所以Composition API又被称为基于函数组合的API。

2.setup

setup函数是Vue3中新增的函数,它是我们在编写组件时,使用Composition API的入口。同时它也是Vue3中新增的一个生命周期函数,会在beforeCreate之前调用。因为此时组件的data和methods还没有初始化,因此在setup中是不能使用this的。所以Vue为了避免我们错误的使用,它直接将setup函数中的this修改成了undefined。并且,我们只能同步使用setup函数,不能用async将其设为异步。

setup最重要的特征:

首先,给一个setup函数的使用简例:

<template>
    <!--与vue2模板的区别:不需要定义一个根标签-->
    <h1>第一个Vue3案例</h1>
    <hr>
    <div>{{msg}}</div>
</template>

<script lang="ts">
    import {defineComponent} from 'vue';
    export default defineComponent({
        name: 'App',
        setup() {
            console.log('执行了setup()...');
            return {
                msg: 'hello,vue3!'
            }
        }
    });
</script>

<style>
    #app {
        height: 100%;
        margin: 0;
        padding: 0;
        border: 0;
    }
    /*解决微信浏览器背景默认灰色问题*/
    body, html {
        background: #ffffff
    }
</style>