【Vue3.0】关于 script setup 语法糖的用法

script setup - 简介

先来看一看官网关于 <script setup> 的介绍:

【Vue3.0】关于 script setup 语法糖的用法

要彻底的了解 setup 语法糖,你必须先明确 setup() 这个 组合式API

官网中对于这一api的介绍是—— 在 setup() 函数中返回的对象会暴露给模板和组件实例。其它的选项也可以通过组件实例来获取 setup() 暴露的属性

1.没有在 <script> 标签后添加 setup 时,你在声明/初始化 响应式 变量或者函数时,每一个都需要在 setup() 的return中进行返回,像这样:

<script> import { ref } from 'vue'  export default {   setup() {     const count = ref(0)      // 返回值会暴露给模板和其他的选项式 API 钩子     return {       count     }   } } </script> 

当你选择<script setup>语法糖时,即可免去这一恶心的操作

like this:

<template>     <!--  组件自动注册  -->     <Child />     <!-- 变量自动注册  -->     {{count}} </template>  <script setup>   // 注册的组件、变量、函数、方法示例直接暴露给模板   import Child from './Child.vue'   // 直接定义 count 无需返回   const count = ref(0) </script> 

2.组件核心 API 直接可以使用
类似 props 、 emits 、 slotsattrs

props : 通过defineProps指定当前 props 类型,获得上下文的props对象,一般用来定义组件的属性

<script setup>   import { defineProps } from 'vue'    const props = defineProps({     title: String,   }) </script> 

父子组件传值的时候用到的 emits

使用defineEmit定义当前组件含有的事件,并通过返回的上下文去执行 emit

<script setup>   import { defineEmits } from 'vue'    const emit = defineEmits(['change', 'delete']) </script> 

小结
在以往的写法中,包括在vue2.0,定义数据和方法,都需要在结尾 return 出去,在能在dom模板中使用。而vue3.0新增的<script setup> 写法中,定义的属性和方法直接暴露给模板和示例组件而省去返回的环节,可以直接使用。

-- 希望本文可以帮助到你 2023年1月12日 --

发表评论

相关文章