首页 > 其他分享 >Vue 3中的setup()函数的作用是什么?

Vue 3中的setup()函数的作用是什么?

时间:2024-09-19 09:53:13浏览次数:12  
标签:生命周期 函数 钩子 setup onMounted Vue

Vue 3 引入了 Composition API,这是一种新的组件编写方式,旨在提供更好的逻辑复用和代码组织。setup() 函数是 Composition API 的入口点,它在组件实例创建之前被调用,并且是响应式系统的上下文。本文将介绍 setup() 函数的作用,并使用 Vue 3 的 setup 语法糖提供示例代码。

setup() 函数的作用

setup() 函数是 Composition API 的核心,它提供了以下功能:

  1. 响应式状态:在 setup() 函数中声明的变量会自动被转换为响应式状态。

  2. 生命周期钩子setup() 函数内部可以访问组件的生命周期钩子,如 onMountedonUpdatedonUnmounted

  3. 模板引用setup() 函数可以访问模板中的 refs,并且可以直接在模板中使用 setup() 中定义的响应式状态和方法。

  4. Props 和 Emitssetup() 函数是处理 props 和 emits 的地方,可以直接在其中定义和使用。

示例代码

使用 setup 语法糖

在 Vue 3 中,使用 <script setup> 语法糖可以使 setup() 函数的使用更加简洁。

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

<script setup>
import { ref, onMounted } from 'vue';

// 响应式状态
const count = ref(0);

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

// 方法
function increment() {
  count.value++;
}
</script>

在这个例子中,我们创建了一个响应式变量 count,并定义了一个 increment 方法来增加 count 的值。我们还使用了 onMounted 生命周期钩子来在组件挂载后打印一条消息。

使用 setup() 函数

如果你需要更细粒度的控制,或者想要在 setup() 函数中进行更复杂的逻辑处理,你可以显式地定义 setup() 函数。

<template>
  <div>
    <p>{{ greeting }}</p>
  </div>
</template>

<script>
import { ref, computed, onMounted } from 'vue';

export default {
  setup() {
    // 响应式状态
    const name = ref('Vue 3');
    
    // 计算属性
    const greeting = computed(() => `Hello, ${name.value}!`);
    
    // 生命周期钩子
    onMounted(() => {
      console.log('Component is mounted');
    });

    // 返回的对象中的属性和方法可以在模板中直接使用
    return {
      greeting
    };
  }
};
</script>

在这个例子中,我们定义了一个响应式变量 name,并创建了一个计算属性 greeting。我们还使用了 onMounted 生命周期钩子,并在 setup() 函数的返回对象中暴露了 greeting,使其可以在模板中使用。

总结

setup() 函数是 Vue 3 Composition API 的入口点,它允许我们在组件的生命周期内声明响应式状态、访问生命周期钩子、定义方法和计算属性。使用 <script setup> 语法糖可以进一步简化 setup() 函数的使用,使得组件的编写更加简洁和直观。通过上述示例代码,你可以开始尝试将这些技巧应用到你自己的 Vue 3 项目中。

标签:生命周期,函数,钩子,setup,onMounted,Vue
From: https://blog.csdn.net/cui137610/article/details/142351024

相关文章

  • 路由跳转登录权限判断/vue3
    1main.ts引入路由和权限校验importrouterfrom"./router";//路由守卫权限拦截2-2import"@/router/permisstion";2router文件夹,三个文件1.1indexe.tsimport{createRouter,createWebHistory}from"vue-router";import{constRouter}from".......
  • vue3自定义指令,全局注册
    1这是directive.js注册的的importtype{Directive,DirectiveBinding}from"vue";importuseUserStorefrom"@/stores/user";import{createPinia}from"pinia";constuserStore=useUserStore(createPinia());//buttonList:["......
  • SpringBoot+Vue餐馆点菜系统小程序
    SpringBoot+Vue餐馆点菜系统小程序项目描述餐馆点菜系统小程序是一个集成了多种功能的移动应用,旨在提供用户便捷的点餐体验和餐厅高效的订单管理。以下是针对您所提到的功能的简单介绍: 前台小程序:用户通过手机上的小程序,可以浏览餐厅的菜单、选择菜品、下单并完成支付。......
  • 深度学习:常用的损失函数的使用和损失函数学习总结
    1.损失函数的概念        损失函数是监督学习中的一个核心概念,用于衡量模型预测的结果与真实值之间的差距。在机器学习模型的训练过程中,损失函数计算预测值与实际标签之间的误差,训练的目标就是通过优化算法(如梯度下降)最小化这个损失函数,从而使模型在给定数据集上的表......
  • 【VUE3.0】动手做一套像素风的前端UI组件库---Button
    目录引言做之前先仔细看看UI设计稿解读一下都有哪些元素:素材补充代码编写1.按钮四周边框2.默认状态下按钮颜色立体效果3.鼠标移入聚焦4.模拟鼠标点击效果组件封装1.按类型设置颜色2.设置按钮禁用状态3.处理一个bug4.看下整体组件效果5.完整代码总结引言......
  • 鸿蒙(HarmonyOS)--函数、类的声明和使用
    目录1.函数1.1函数的声明1.2可选参数 1.2.1 参数名?:类型  1.2.2参数名:类型=值 1.3Rest参数 1.4返回类型1.4.1显示返回1.4.2隐示返回1.4.3无返回类型1.5函数的作用域1.5.1全局作用域1.5.2局部作用域1.6函数调用1.7函数类型 1.8 箭头函数/l......
  • C++之move函数的使用
    在C++中,std::move 是一个标准库函数,用于实现“移动语义”(MoveSemantics),这是C++11引入的一个重要特性。std::move 允许你将对象的资源“转移”到另一个对象,从而避免不必要的复制操作,提高效率。什么是 std::move?std::move 是一个类型转换函数,它将其参数转换为右值引......
  • 第七章习题12-用牛顿迭代法求根。方程为一元三次函数,系数a,b,c,d的值依次为1,2,3,4,由
     ......
  • python毕业设计基于django+vue软件技术代码分享交流平台设计与实现
    目录技术栈和环境说明预期达到的目标具体实现截图系统设计Python技术介绍django框架介绍flask框架介绍解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示操作可行性技术路线感恩大学老师和同学详细视频演示源码获取......
  • python毕业设计基于django+vue的考务管理系统的设计与实现
    目录技术栈和环境说明预期达到的目标具体实现截图系统设计Python技术介绍django框架介绍flask框架介绍解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示操作可行性技术路线感恩大学老师和同学详细视频演示源码获取......