vue3 setup运用

本文介绍了Vue3中setup的新功能,它作为CompositionAPI的一部分,取代了data和methods的使用。setup允许在组件创建前后执行逻辑,并展示了如何在模板中使用和处理数据。特别提到setup中的this指向问题以及响应式的解决方案会在后续讨论。
摘要由CSDN通过智能技术生成

setup是一个全新的配置项,值是一个函数,既然是配置项,是否与data、methods是兄弟?

没错,确实是兄弟关系,只不过到了vue3,就不怎么使用data这些配置项,会使用setup,让我为大家简单的介绍一下setup吧!

setup是Composition API,组件中所用到的数据方法等等均配置在setup中

让我们使用一下setup吧!

<template>
    <div class="box">
        <div>姓名:{{ name }}</div>
        <div>年龄:{{ age }}</div>
        <button @click="updateName">修改名字</button>
        <button @click="updateAge">修改年龄</button>
    </div>
</template>
<script lang="ts">
export default {
    name: 'Person',
    setup() {
        let name = "张三"
        let age = 18
        function updateName() {
            name = "李四"
        }
        function updateAge() {
            age = 20
        }
        // 我们需要使用到return 返回值
        return { name, age, updateName, updateAge }
    }
};
</script>
<style scoped>
.box {
    width: 200px;
    height: 120px;
    border: 1px solid #000;
}
button {
    margin: 50px 0;
}
</style>

当我们点击按钮时,数据修改了,但不是响应式,关于响应式的问题我会在下一篇写对应的方法

我们来看看setup是否在创建之前

    beforeCreate() {
        console.log("beforeCreate");
    },
    setup() {
        console.log("setup");
    }
 


注意点:
setup中this为undefined

setup() {
  console.log(this); // undefined
}

setup是有语法糖的

<template>
    <div class="box">
        <div>姓名:{{ name }}</div>
        <div>年龄:{{ age }}</div>
        <button @click="updateName">修改名字</button>
        <button @click="updateAge">修改年龄</button>
    </div>
</template>
<script lang="ts">
export default {
    name: 'Person',
    // 我们需要使用到return 返回值
};
</script>
<script setup lang="ts">
let name = "张三"
let age = 18
function updateName() {
    name = "李四"
}
function updateAge() {
    age = 20
}
</script>
<style scoped>
.box {
    width: 200px;
    height: 120px;
    border: 1px solid #000;
}
button {
    margin: 50px 0;
}
</style>

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值