vue3之setup的基本使用

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>

这样我们就很方便,不需要使用到 return

感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!

相关推荐

  1. vue3 setup router使用教程

    2024-02-18 07:24:02       72 阅读
  2. Vue3setup方法

    2024-02-18 07:24:02       38 阅读
  3. Vue 3 中,defineExpose 在<script setup> 中使用

    2024-02-18 07:24:02       31 阅读
  4. Vue 3 setup 函数使用及避坑指南

    2024-02-18 07:24:02       31 阅读
  5. vue3 setup标签使用总结

    2024-02-18 07:24:02       34 阅读
  6. VUE3——setup介绍

    2024-02-18 07:24:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-18 07:24:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-18 07:24:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-18 07:24:02       82 阅读
  4. Python语言-面向对象

    2024-02-18 07:24:02       91 阅读

热门阅读

  1. 机器人学环境配置(VM-16 + Ubuntu-20.04 + ROS-noetic)

    2024-02-18 07:24:02       66 阅读
  2. Unity-HDRP-Sense-4

    2024-02-18 07:24:02       47 阅读
  3. 力扣代码学习日记三

    2024-02-18 07:24:02       55 阅读
  4. 配置Vite+React+TS项目

    2024-02-18 07:24:02       43 阅读
  5. Docker 第十五章 : Docker 三剑客之 Compose(一)

    2024-02-18 07:24:02       42 阅读
  6. RabbitMQ

    RabbitMQ

    2024-02-18 07:24:02      52 阅读