Vue3中script&setup

2023-05-16

一.script setup

1.1定义

script setup是 Vue3 的一个新[语法糖,相比于普通的语法,简化了组合式API必须return的写法,拥有更好的运行时性能,具体详情参考Vue官方文档。

1.2使用

<script setup> 
const name = '哈哈哈'
</script>

//等同于
<script> 
   setup(){
      const name = '哈哈哈'
      return {
          name
      }
   }
</script>

1.3特点

  1. 声明的内容可以直接在模板中使用
  2. 自动注册组件
  3. 动态组件,应该使用动态的:is来绑定
  4. 必须使用 definePropsdefineEmits API 来声明 props 和 emits
  5. script setup的组件是默认关闭的,需要defineExpose明确要暴露的属性
  6. 通过 useSlotsuseAttrs 两个辅助函数使用slotsattrs
  7. script setup中可以使用顶层 await。结果代码会被编译成 async setup()

二.setup()

setup 方法接受两个参数 setup(props, context)

2.1props 是父组件传给组件的数据

2.2context(上下文)

context中包含了一些常用属性:

  • attrs 表示由上级传向该组件,但并不包含在 props 内的属性
<!-- parent.vue -->
<Child msg="hello world" :name="'child'"></Child>
/* child.vue */
export default {
  props: { name: String },
  setup(props, context) {
    console.log(props) // {name: 'child'}
    console.log(context.attrs) // {msg: 'hello world'}
  },
}
  • emit用于在子组件内触发父组件的方法
<!-- parent.vue -->
<Child @toggle="toggle"></Child>
/* child.vue */
export default {
  setup(_, context) {
    context.emit('toggle')
  },
}
  • slots用来访问被插槽分发的内容,相当于 vm.$slots
<!-- parent.vue -->
<Child>
  <template v-slot:header>
    <div>header</div>
  </template>
  <template v-slot:content>
    <div>content</div>
  </template>
  <template v-slot:footer>
    <div>footer</div>
  </template>
</Child>
/* child.vue */
export default {
  setup(_, context) {
    const { header, content, footer } = context.slots
    return () => h('div', [h('header', header()), h('div', content()), h('footer', footer())])
  },
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue3中script&setup 的相关文章

随机推荐

  • 三、共阳数码管的静态显示

    目录 1 数码管的电路分析 2 代码 8个数码管分别单独依次显示0 9的值 xff0c 然后所有数码管一起同时显示0 F的值 xff0c 如此往复 1 数码管的电路分析 共阳数码管 xff1a xff08 接低 61 亮 xff09 0 1
  • 十四、基础技能综合实训案例解析

    目录 自己实现有问题的部分 xff1a 跑马管 xff08 左到右依次点亮数码管的所有段码 xff08 怎么实现数码管全亮 xff1f xff09 xff0c 再依次从左 到右熄灭 xff09 独立按键 xff1a 按下按键 xff0c 灯
  • lua os.time与os.date的简单用法

    local start 61 os time year 61 2016 month 61 2 day 61 1 hour 61 20 min 61 0 sec 61 0 local finish 61 os time year 61 201
  • python opencv 调用摄像头失败问题的解决 Windows

    省流 xff1a 内含 Python Opencv 双目相机拍照代码 xff08 手动 or 自动 xff09 xff0c 可自取 xff1b 如果你的 cv2 VideoCapture 函数卡住但不报错 xff0c 打开 Windows
  • 使用PCtoLCD2002字模提取软件

    一 PCtoLCD2002基本介绍 PCtoLCD2002是专业的取字模软件 xff0c 采用C语言和汇编语言两种格式 xff0c 支持逐行 逐列 行列 列行四种取模方式 xff0c 还可以选择字体 大小 文字的长宽 xff0c 自动生成你
  • Java——打印出所有的水仙花数(两种方法实现)

    目录 概念介绍 代码实现 结果展示 概念介绍 34 水仙花数 34 是指一个三位数 xff0c 其各位数字立方和等于该数本身 例如 xff1a 153是一个 34 水仙花数 34 xff0c 因为153 61 1的三次方 xff0b 5的三
  • 虚拟机mac已连接以太网但是依旧没网络解决方法

    提供以下解决方案 1 关闭虚拟机 xff0c 在虚拟机网络适配器中更改 xff0c 每台电脑体质不一样 xff0c 桥接不行就net xff0c 再不行就选择主机 xff0c 不能一棵树吊死 xff0c 往往都是这个问题 xff0c 百度找
  • Debian 10服务器安全优化脚本

    vim anquanjiaoben sh bin bash echo 34 服务器安全脚本 34 echo 34 系统更新 34 sudo apt get update y sudo apt get upgrade y echo 34 ip
  • VS2017报错 class “Cxxxx“没有成员“GetContextMenuManager“ “GetContextMenuManager“:不是“Cxxxx“的成员

    项目场景 xff1a 系统 xff1a WIN 10 软件 xff1a VS 2017 问题描述 看B站MFC教学视频 xff0c 一直看到一个完整项目的搭建 xff0c 按照视频步骤来发现会报一个错误 xff1a class Cxxxx
  • 用户回调期间遇到未经处理的异常

    项目场景 xff1a 系统 xff1a WIN10 软件 xff1a VS 2017 问题描述 按照视频教学 xff0c 编译通过但是调试失败 提示错误为 xff1a 0x0FD7FD71 mfc140u dll SaleSystem ex
  • 无法打开源文件stdafx.h

    在VS 2019中使用Strcpy函数会报错 xff0c 大意是说该函数不安全 xff0c 建议使用 34 strcpy s 34 函数 百度发现 strcpy s 34 函数需要include stdafx h 然后编译器就说无法打开源文
  • 轮盘赌选择法

    遗传学基本术语 基因型 genotype xff1a 性状染色体的内部表现 xff1b 表现型 phenotype xff1a 染色体决定性状的外部表现 xff0c 或者说 xff0c 根据基因型形成的个体 xff1b 进化 evoluti
  • MFC使用roid设置全选与反选

    span class token comment 全选 span span class token keyword void span AllResultsListThcDlg span class token operator span
  • 使用wmic获取运行中进程的路径

    我们常常需要知道运行的进程在哪个目录下 使用wmic非常方便 xff0c 能够知道进程的详细信息 例如 xff1a 任务管理器中显示的进程名为c exe 查找路径方法是 xff1a 打开cmd exe 输入wmic 然后输入process
  • GWL_WNDPROC 、GWL_USERDATA、GWL_HINSTANCE未定义

    提示GWL HINSTANCE未定义则添加以下宏定义 xff1a span class token comment Window field offsets for GetWindowLong span span class token m
  • C语言:数组排序

    定义一个数组 xff0c for循环排列 include lt stdio h gt int main int argc char const argv int a printf 请输入数组长度 xff1a scanf 34 d 34 am
  • Android_广播机制实战演练(数鸭子)

    Android 广播机制实战演练 数鸭子 所需文件 MainActivity span class token keyword package span span class token namespace com span class t
  • [初学单片机]stm32f103C8T6最小系统板快速完成点亮led灯

    目录 一 准备工作 二 建立工程模板 三 配置keil5 四 程序 五 程序下载 xff08 烧录 xff09 六 总结 一 准备工作 keil5 xff0c 自行下载安装 xff1b 库函数包 xff0c 这里我上传了一个F1xx的库函数
  • 51单片机数码管显示60秒倒计时(C语言)

    51单片机数码管显示60秒倒计时 xff08 C语言 xff09 基于普中51单片机开发板 xff0c 运用定时器 计数器0和1 xff0c 实现60秒的倒计时和LED灯0 5s间隔闪烁 文章目录 51单片机数码管显示60秒倒计时 xff0
  • Vue3中script&setup

    一 script setup 1 1定义 script setup是 Vue3 的一个新 语法糖 xff0c 相比于普通的语法 xff0c 简化了组合式API必须return的写法 xff0c 拥有更好的运行时性能 xff0c 具体详情参考