当前位置: 首页 > article >正文

Vue 3 的 setup 函数

Vue 3 引入了 Composition API,这是一组基于函数的 API,提供了一种更灵活的方式来组织组件逻辑。setup 函数是 Composition API 的核心,它允许开发者在组件中使用 Composition API 的功能。本文将详细介绍 setup 函数的两种编写方式:1. 使用 setup() 函数,2. 使用 <script setup lang="ts"> 语法糖。

1. 使用 setup() 函数

在 Vue 3 中,setup 函数是每个组件的入口点,它在组件实例创建之前被调用。setup 函数接收两个参数:propscontext,分别代表传入组件的属性和组件的上下文。

示例代码

<template>
  <div>
    <p>{{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script lang="ts">
import { ref, onMounted } from 'vue';

export default {
  setup() {
    const count = ref(0);

    const increment = () => {
      count.value++;
    };

    onMounted(() => {
      console.log('Component is mounted');
    });

    return { count, increment };
  },
};
</script>

代码解释

定义响应式数据:
const count = ref(0);

使用 ref 函数创建一个响应式引用 count,初始值为 0。

定义方法:
const increment = () => {
  count.value++;
};

定义一个方法 increment,用于增加 count 的值。

生命周期钩子:
onMounted(() => {
  console.log('Component is mounted');
});

使用 onMounted 生命周期钩子,在组件挂载完成后执行回调函数。

返回值:
return { count, increment };

setup 函数的返回值会被模板访问,这里返回 countincrement,使它们在模板中可用。

2. 使用 <script setup lang="ts"> 语法糖

Vue 3.2 引入了 <script setup> 语法糖,它简化了 setup 函数的使用,使得代码更加简洁和易于理解。

示例代码

<template>
  <div>
    <p>{{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script setup lang="ts">
import { ref, onMounted } from 'vue';

const count = ref(0);

const increment = () => {
  count.value++;
};

onMounted(() => {
  console.log('Component is mounted');
});
</script>

代码解释

定义响应式数据:
const count = ref(0);

直接在 <script setup> 中定义响应式数据 count

定义方法:
const increment = () => {
  count.value++;
};

直接在 <script setup> 中定义方法 increment

生命周期钩子:
onMounted(() => {
  console.log('Component is mounted');
});

直接在 <script setup> 中使用生命周期钩子 onMounted

优势

  • 更简洁的代码:不需要显式返回 setup 函数的返回值,模板可以直接访问定义的响应式数据和方法。
  • 更好的类型推断<script setup> 提供了更好的 TypeScript 类型推断支持。

总结

Vue 3 的 setup 函数提供了一种更灵活和强大的方式组织组件逻辑。通过 setup() 函数和 <script setup lang="ts"> 语法糖,开发者可以更高效地编写组件代码。<script setup> 语法糖进一步简化了代码,使得组件更加简洁和易于维护。希望本文能帮助你更好地理解和使用 Vue 3 的 setup 函数。


http://www.kler.cn/a/517564.html

相关文章:

  • websocket实现
  • ThinkPhp伪静态设置后,访问静态资源也提示找不到Controller
  • 鸿蒙next 自定义日历组件
  • mysql 学习6 DML语句,对数据库中的表进行 增 删 改 操作
  • 做Midjourney最好图文教程-提示词公式以及高级参数讲解
  • 蓝桥杯LQ1044 求完数
  • Gaea项目的挑战与机遇:去中心化AI平台的未来发展
  • 洛谷 B2031:计算三角形面积 ← 叉积
  • 飞行器半实物联合仿真:技术解析与应用实践
  • shell中for循环的用法
  • 深圳大学-智能网络与计算-实验一:RFID原理与读写操作
  • Charles 4.6.7 浏览器网络调试指南:功能详解下(五)
  • HarmonyOS NEXT边学边玩:从零实现一个影视App(七、今日票房页面的设计与实现)
  • 结构生物学3-冷冻电镜单颗粒重构:
  • 【C++】异常与智能指针
  • 分组表格antd+ react +ts
  • Python数据分析-数据加载与存储(六)
  • .NET 9.0 的 Blazor Web App 项目、Bootstrap Blazor 组件库、自定义日志 TLog 使用备忘
  • 【开源实录】从App Store审核失败到开源:一个AI辅助开发的SwiftUI项目
  • Docker 在Linux 系统中的使用说明
  • 数据结构与算法再探(六)动态规划
  • AIP-128 声明友好接口
  • Java语言程序设计(第3版) 课后练习
  • 《jEasyUI 动态改变列》
  • 解决lombok注解失效
  • 鸿蒙(HarmonyOS) HDC 命令合集分类记录