<script>和<script setup>的区别

在Vue 3中,<script setup>是Composition API的一个语法糖,它提供了一种更简洁的方式来编写组件逻辑。使用<script setup>,您可以在组件外部直接导入或定义方法和响应式数据,而不需要在setup()函数内部进行。

<script setup> 是Vue 3的Composition API的一个语法糖,它允许你以更声明式的方式编写组件。当你在<script>标签中使用<script setup>时,你可以直接在组件作用域内声明响应式状态和计算属性,而不需要在setup()函数内部。

lang="ts"是为TypeScript声明的,它告诉Vue你正在使用TypeScript作为项目的开发语言。

以下是<script setup>与常规<script>标签使用Composition API的对比示例:

使用<script setup>:

<template><div><h1>{{ count }}</h1><button @click="increment">Increment</button></div>
</template><script setup lang="ts">
import { ref } from 'vue';const count = ref(0);const increment = () => {count.value++;
};
</script>

在这个例子中,我们使用了<script setup>,并且因为是在<script setup>上下文中,所以可以直接使用ref声明响应式状态count,并且可以直接定义方法increment,而不需要将其包装在setup()函数中。

使用常规<script>:

<template><div><h1>{{ count }}</h1><button @click="increment">Increment</button></div>
</template><script lang="ts">
import { ref } from 'vue';export default {setup() {const count = ref(0);const increment = () => {count.value++;};return {count,increment};}
};
</script>

以下是<script setup>与常规<script>标签使用Composition API的主要区别:

  1. 导入和导出:

    • 常规<script>: 您需要在setup()函数内部导入所需的Composition API函数,如ref, reactive, computed等,并且您不能从外部直接导出或导入任何东西。
    • <script setup>: 您可以像在模块中一样直接导入和导出函数、响应式数据等,不必包装在setup()函数中。
  2. 响应式数据的使用:

    • 常规<script>: 您需要通过setup()返回的对象来暴露需要响应式的数据和方法,这样它们才能在模板或其他组件中使用。
    • <script setup>: 您定义的响应式数据(使用ref, reactive, computed等)默认就是可响应式的,并且可以直接在模板中使用,无需额外的暴露步骤。
  3. 代码结构:

    • 常规<script>: 遵循Vue 3 Composition API的标准结构,所有的逻辑都封装在setup()函数中。
    • <script setup>: 提供了一种更扁平化和直观的代码结构,可以减少模板和逻辑之间的跳转,提高代码的可读性。
  4. TypeScript支持:

    • 常规<script>: 需要在setup()函数的参数中明确类型,如使用Props, Context等。
    • <script setup>: 提供了更好的类型推断,因为定义的响应式变量可以直接用于模板,所以类型信息更清晰。
  5. 生命周期钩子:

    • 常规<script>: 生命周期钩子如onMounted, onUpdated等需要在setup()中使用。
    • <script setup>: 允许您直接使用生命周期钩子,如onMounted, onUpdated等,而不需要在setup()内部。
  6. 模板引用:

    • 常规<script>: 使用setup()的返回值来定义模板引用,如refreactive对象的属性。
    • <script setup>: 可以直接在模板中使用定义的响应式变量,无需通过返回值引用。

使用<script setup>可以减少样板代码,使组件更加简洁。但是,它也有一些限制,比如不支持选项式API(如data, computed, watch等),并且某些高级用例可能需要在setup()内部实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/452.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iframe嵌套页面 拒绝访问 X-Frame-Options配置

iframe嵌套页面 拒绝访问 X-Frame-Options配置 iframe拒绝访问 X-Frame-Options: deny X-Frame-Options: sameorigin X-Frame-Options: allow-from https://example.com/deny 表示该页面不允许在 frame 中展示&#xff0c;即便是在相同域名的页面中嵌套也不允许。 sameorigi…

[源码分享]基于Unity的Live2D虚拟人物——结合了GPT、Azure、情绪识别和口型同步,也可以集合苹果Vision Pro做成3D的形象

# 技术文档 ## 1 项目简介 ### 项目目录 ``` Assets ├─ Animator // 动画 ├─ Code // 代码 │ ├─ AI // AI 模块 │ │ ├─ LM // 语言模型模块 │…

notepad++的使用技巧

notepad的使用技巧_notpad垂直粘贴-CSDN博客 notepad的使用技巧 多视图 视图----移动/复制到当前文档-----移动到另一视图&#xff08;可以配合水平/垂直同步滚动功能&#xff09; 书签功能 在任意行点击左边栏或者按CtrlF2会出现蓝色小点&#xff0c;这表示添加了一个书签…

算法训练 | 使用JAX训练CLIP算法_支持fine-tuning

项目应用场景 面向 CLIP 算法训练场景&#xff0c;项目采用 JAX 来实现 CLIP 算法的训练&#xff0c;支持 fine-tuning。 项目细节 > 具体参见项目 README.md (1) 安装 pip install clip-jax (2) 下载训练数据 # clone and install datacomp# download data python downl…

基于Springboot+Vue的Java项目-网上购物商城系统开发实战(附演示视频+源码+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &am…

数仓建模—数据仓库初识

数仓建模—数据仓库初识 数据仓库之父Bill Inmon在1991年出版的"Building the Data Warehouse"一书中所提出的定义被广泛接受 数据仓库&#xff08;Data Warehouse&#xff09;是一个面向主题的&#xff08;Subject Oriented&#xff09;、集成的&#xff08;Integ…

hv第一坑:定时器

错误代码 重试策略&#xff1a;一次延迟1s,最长30s直至事件成功。 int try_count 0;//do something if(not success)m_loop->setTimerInLoop((try_count > 30 ? 30: try_count) *1000 , cb, INFINITE, 0x100);表现现象 cpu 爆了内存爆了 总结原因 hv内部代码bug&…

C++异步回调示例:多线程执行任务,主线程通过回调监测任务状态

1、回调函数 回调函数定义&#xff1a;把函数的指针或者地址作为参数传递给另一个参数&#xff0c;当这个指针被用来调用其所指向的函数时&#xff0c;那么这就是一个回调的过程&#xff0c;这个被回调的函数就是回调函数。回调函数不是由该函数的实现方直接调用&#xff0c;而…

Ubuntu20.04 ISAAC SIM仿真下载使用流程(4.16笔记补充)

机器&#xff1a;华硕天选X2024 显卡&#xff1a;4060Ti ubuntu20.04 安装显卡驱动版本&#xff1a;525.85.05 参考&#xff1a; What Is Isaac Sim? — Omniverse IsaacSim latest documentationIsaac sim Cache 2023.2.3 did not work_isaac cache stopped-CSDN博客 Is…

相机1:如何系相机肩带

开始解锁新领域&#xff0c;多看几个相关视频&#xff0c;大概也就可以掌握一两种系相机肩带的方法&#xff0c;本质就是新知识的学习过程&#xff0c;不可能等着或者期待出来一个完整的教程&#xff0c;一步一步自己去探索&#xff0c;自己去查资料。 目录 总述 第一步&#…

chrome 浏览器 f12 如何查看 websocket 消息?

1. 打开目标页面 2. f12--》网络--》WS&#xff0c;然后刷新页面( 如果不刷页面&#xff0c;就会看不到 websocket 请求&#xff0c;因为 websocket 是长连接&#xff0c;页面加载后只发出一次连接请求&#xff0c;不像 http 接口&#xff0c;不用刷新页面&#xff0c;待会儿也…

STM32F103 hal库 移植 freeRTos+LVGL

先配置freeRTOS 配置时钟 选用外部晶振 这里选用其他定时器&#xff0c;至于为什么我也不是很懂&#xff0c;好像说是跟稳定 配置FREERTOS 其他配置看着办 移植LVGL 先去gitee下载源码 选择一个版本 开始移植 1、添加lvgl源码到工程文件中 把lvgl-8.0.2\src文件夹直接复制…

Elasticsearch:(二)3.安装Elasticsearch-head插件

1.环境安装介绍: 安装java环境安装Elasticsearch安装kibana安装Elasticsearch-head插件 本节文章主要讲解Elasticsearch-head的安装。 2.安装 这个head插接可以安装在本机客户端或者服务器都可以,这里讲解windows安装 2.1 安装依赖 下载node:下载地址:https://nodejs.or…

FlinkCDC基础篇章1-安装使用

1、下载、安装Flink 下载地址&#xff1a; Downloads | Apache Flink --------具体环境参考官网-------- 解压&#xff1a;tar zxf flink-XXXX-bin-scala_XXX.tgz 启动应用&#xff1a;./bin/start-cluster.sh 可访问&#xff1a;http://127.0.0.1:8081/ 校验 启动客户端…

SpringBoot(一)【入门】

前言 1、SpringBoot 快速入门 1.1、SpringBoot 简介 SpringBoot 是用来简化 Spring 应用的初始搭建以及开发过程 首先我们回顾一下 SpringMVC 项目的开发过程&#xff1a; 导入依赖&#xff08;javax.servlet-api 和 spring-webmvc&#xff09;Servlet 容器配置类&#xff…

227基于matlab的作业调度问题

基于matlab的作业调度问题。采用遗传算法&#xff0c;解决作业调度问题。一共三个作业&#xff0c;每个作业有不同的时间长度和紧急程度&#xff0c;超过时间会有惩罚措施。通过遗传算法计算出最好的作业安排&#xff0c;使得惩罚最小&#xff0c;获益最大。最终结果通过GUI用甘…

Maven 项目 JDK 8、JDK 17 多版本 Java 编译依赖最佳实践

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

已解决java.security.cert.CertificateException: 证书异常的正确解决方法,亲测有效!!!

已解决java.security.cert.CertificateException: 证书异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 检查证书的有效期 验证证书链 检查信任根证书 查看证书撤销列表 检查证书格式和完整性…

ubuntu下交叉编译ffmpeg到目标架构为aarch架构的系统

Ubuntu下FFmpeg的aarch64-linux-gnu架构交叉编译教程 一、前言 有时候真的很想报警的&#xff0c;嵌入式算法部署花了好多时间了&#xff0c;RKNN 1808真是问题不少&#xff1b;甲方那边也是老是提新要求&#xff0c;真是受不了。 由于做目标检测&#xff0c;在C代码中有对视…

Kingbase(人大金仓数据库)(总结全网精华,虚拟机:从安装到操作数据库一条龙)

前言&#xff1a; 前一阵子一直在捣鼓人大金仓数据库&#xff0c;虽然国产化的数据库很值得夸赞&#xff0c;但是网上的资料确实少的可怜。特此记录一下我在学习这个数据库的心酸历程。 安装就看这个大哥的&#xff0c;我之前安装就是看的他的&#xff0c;非常靠谱。 linux安装…