前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue前端篇—— Vue3首个语法之Setup详解

Vue前端篇—— Vue3首个语法之Setup详解

原创
作者头像
小明爱吃火锅
发布2024-07-22 16:46:36
3040
发布2024-07-22 16:46:36
举报
文章被收录于专栏:小明说Java

前言

随着 Vue3 的发布,Composition API 作为其核心特性之一,为前端开发者带来了全新的组件编写方式。其中,setup 函数作为 Composition API 的入口,提供了一种更加灵活和模块化的方式来组织组件逻辑。本文将详细介绍 setup 函数的用法和特点,帮助开发者更好地理解和应用这一新特性。

setup 函数详解

setup 函数是 Vue3 中引入的一个新配置项,它的值是一个函数,用于配置组件的逻辑。在 setup 函数中,你可以声明组件所需的数据、方法、计算属性、监视等。setup 函数的返回值是一个对象,这个对象中的属性和方法可以直接在组件的模板中使用。

setup 函数的特点

  1. setup 函数返回的对象中的内容,可以直接在模板中使用。
  2. setup 函数中访问 this 会得到 undefined,因为它是针对函数式组件环境设计的。
  3. setup 函数会在 beforeCreate 钩子之前调用,它“领先”于所有的生命周期钩子执行。

setup实现代码如下:

代码语言:vue
复制
<template>
  <div class="person">
    <h2>姓名:{{name}}</h2>
    <h2>年龄:{{age}}</h2>
    <button @click="changeName">修改名字</button>
    <button @click="changeAge">年龄+1</button>
    <button @click="showTel">点我查看联系方式</button>
  </div>
</template>

<script lang="ts">
  export default {
    name: 'Person',
    setup() {
      // 数据,原来写在 data 中
      let name = '张三'
      let age = 18
      let tel = '13888888888'

      // 方法,原来写在 methods 中
      function changeName() {
        name = 'zhang-san'
        console.log(name)
      }
      function changeAge() {
        age += 1
        console.log(age)
      }
      function showTel() {
        alert(tel)
      }

      // 返回一个对象,对象中的内容,模板中可以直接使用
      return { name, age, tel, changeName, changeAge, showTel }
    }
  }
</script>

setup 的返回值

  • 若返回一个对象:则对象中的属性、方法等,在模板中均可以直接使用。
  • 若返回一个函数:则可以自定义渲染内容。

setup 与 Options API 的关系

  • Vue2 的配置(如 datamethods 等)中可以访问到 setup 中的属性、方法。
  • 但在 setup 中不能访问到 Vue2 的配置(如 datamethods 等)。
  • 如果存在冲突,setup 中的配置优先。

setup 语法糖

Vue3 提供了一个 setup 的语法糖,允许我们将 setup 配置独立到一个 <script> 标签中,而不需要在主 <script> 标签中声明 setup 函数。

扩展:简化 setup 的使用

使用 Vite 的插件 vite-plugin-vue-setup-extend 可以进一步简化 setup 的使用,使得组件结构更加简洁。

代码如下:

代码语言:txt
复制
npm i vite-plugin-vue-setup-extend -D
vite.config.ts
import { defineConfig } from 'vite'
import VueSetupExtend from 'vite-plugin-vue-setup-extend'

export default defineConfig({
  plugins: [ VueSetupExtend() ]
})

<script setup lang="ts" name="Person">

总结

setup 函数作为 Vue3 中 Composition API 的核心,提供了一种全新的方式来编写和组织组件逻辑。它的灵活性和模块化特性使得开发者可以更加高效地构建和维护 Vue 应用。通过理解 setup 函数的用法和特点,开发者可以充分利用 Vue3 提供的强大功能,提升开发体验和应用质量。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • setup 函数详解
    • setup 函数的特点
      • setup 的返回值
        • setup 与 Options API 的关系
        • setup 语法糖
          • 扩展:简化 setup 的使用
          • 总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档