Vue语法糖<script setup>详解,用最快的方式让你看懂和<script>的区别

news2025/2/28 5:24:42

前言

Vue3出来已经3年了,但是前两天在百度上搜索有关setup语法糖的细节时,发现很多博客关于语法糖细节部分,还是讲的很粗糙,因此决定自己来写一篇入门的博客,方便大家快速上手。

<script setup>简介

它是Vue3中的一个语法糖,熟悉vue3脚手架的同学,应该一眼就能看出来,vite脚手架默认创建的模板项目中就使用了这个语法糖,说明官网也推荐我们去使用语法糖。

我们都知道,setup是vue3中新增的属性,主要用来解决数据和方法的声明。
<script setup>是setup的替代,我们之前在setup中声明的内容,现在都可以直接迁移。

作用

一言以蔽之,就是简化我们的书写,使用了这个语法糖之后,我们在<script>中声明的任何数据、方法以及import内容都不必再次配置,可以直接在模板<template>中使用。

配置

基础数据

setup语法糖有一个特点,相对于需要return来配置返回内容的setup属性,setup语法糖中可以不用返回。
例如,我简单配置了一个a变量和一个计数方法。

<script setup>
  import { ElButton } from 'element-plus'
  import { reactive, ref } from 'vue'

  let a = ref(3);
  let person = reactive({
    name:'PYR',
    age:17
  });
  const count = function(){
    console.log('我被调用了')
    this.a+=1;
  }
</script>
<span>{{ a }}</span><br/>
  <span>{{ person }}</span><br/>
  <el-button  type="primary" :plain="false" @click="count()">计数</el-button>

页面的效果如图所示:
在这里插入图片描述
ps:这里的element-ui不知道为什么失效了,不影响我们理解。

子组件

要配置子组件,我们只需要import引入即可,我们也可以对子组件取别名,这个不多赘述。

 import School from './components/School.vue'
 import School as mySchool from './components/School.vue'

props和emits的配置

关于emits属性,简单的说明一下,在vue3中需要在子组件中对绑定的自定义事件作出声明,否则会给出警告,emits属性即用来配置事件名。

配置props,需要用到一个方法defineProps()。同理emits也有对应的方法defineEmits().

<script setup>
const props = defineProps({
 name: String
})

const emit = defineEmits(['add', 'delete'])
// setup code
</script>

slot插槽和Attrs

这两个学过vue2的话,应该不陌生,slot插槽的作用是在子组件标签中插入dom元素,并且子组件能够配置slot来接受这些元素。Atrr则是接受props未收集的数据,在vue2中,获取的方式为 组件对象.$atrri 。

<script setup>
import { useSlots, useAttrs } from 'vue'

const slots = useSlots()
const attrs = useAttrs()
</script>

常用的配置就介绍完啦,如果想要更深入的了解setup语法糖,可以自行前往官网查看。

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

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

相关文章

关于ASP.NET MVC与.NET CORE 的区别--小结

简述关于ASP.NET MVC与.NET CORE的区别 1、关于ASP.NET 关于MVC 刚开始接触这个技术的时候我经常不理解他们的名字&#xff0c;我相信许多学ASP.NET开发人员开始接触MVC应该也和我一样产生很多为什么&#xff0c;也会误认为认为MVC与ASP.NET完全没有关系&#xff0c;是一个全新…

基于ssm+vue的学生实习过程管理系统

基于ssmvue的学生实习过程管理系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍…

Kotlin与H5通信的实现方式

Kotlin与H5通信1、H5中主动的调用Kotlin中的程序1编写后端程序并且在服务器上运行2准备好AndroidStudio的界面布局中的WebView3编写工具类用来处理H5调用逻辑4通过addJavascriptInterface来构建桥梁5结果展示2在Kotlin中调用H5的程序1在H5中编写方法&#xff0c;来处理Kotlin的…

【C】Operator / Expression

系列连载 【python / C / C】 参考 《C语言程序设计&#xff08;第四版&#xff09;谭浩强》【C语言】C语言视频教程《郝斌 C 语言自学教程》 文章目录1 运算符1.1 基本的算术运算符2 表达式1 运算符 1.1 基本的算术运算符 注意&#xff0c; 是右结合的 “” 具有左结合性&…

C++ 面向对象、多继承

// Student.hclass Student { private: // 私有的&#xff0c;外界不能访问char *name;int age;public:void setAge(int age);void setName(char* name);int getAge();char* getName();// 空参构造函数Student(){}// 一参构造函数Student(char* name) : Student(name,80) {// 调…

干翻Hadoop系列:MapReduce详解

第一章&#xff1a;MapReduce原理 数据存储在分布式文件系统中HDFS里边&#xff0c;通过使用Hadoop资源管理系统YARN&#xff0c;Hadoop可以将MapReduce计算&#xff0c;转移到有存储部分的数据的各台机器上。 一&#xff1a;概念和原理 1&#xff1a;MapReduce作业 MapRed…

【机器学习】P16 激活函数 Activation Function

对于激活函数&#xff08;Activation Function&#xff09;&#xff0c;存在两个问题&#xff1a; 为什么要用激活函数&#xff1f;如何选择用哪种激活函数&#xff1f;如何使用激活函数&#xff1f; 本博文将围绕这两个问题&#xff0c;首先介绍激活函数的作用&#xff0c;从…

2023腾讯云轻量应用服务器性能评测

腾讯云轻量应用服务器性能如何&#xff1f;CPU型号主频、内存、公网带宽和系统盘存储多维对比&#xff0c;轻量应用服务器会不会比云服务器CVM性能差&#xff1f;相对于CVM云服务器轻量服务器更适合轻量级的应用&#xff0c;轻量服务适合中小企或个人开发者用于搭建We网站b应用…

利用Python生成和识读二维码(QR Code)和微二维码(Micro QR Code)

目录一、环境准备二、二维码&#xff08;QR Code&#xff09;生成和读取2.1 生成二维码2.2 读取二维码三、微二维码&#xff08;Micro QR Code&#xff09;生成和读取3.1 生成微二维码3.2 读取微二维码之前写的一篇 博客采用了segno库来做微二维码的生成&#xff0c;该库可以方…

AD9689 input clock not detect

在项目调试中&#xff0c;遇到的问题&#xff0c;在ADI论坛上发帖咨询&#xff0c;转发到这里。网址如下&#xff1a; AD9689 input clock not detect - Q&A - High-Speed ADCs - EngineerZone (analog.com) Our FPGA board has two AD9689&#xff0c;one works ok, but…

使用Marshaller 将Java对象转化为XML格式和字符串转为xml

使用Marshaller 将Java对象转化为XML格式 对象转xml内容 ①工具类 public static String convertObjectToXml(Object obj) throws Exception {StringWriter writer new StringWriter();// 创建 JAXBContext 和 MarshallerJAXBContext context JAXBContext.newInstance(obj.ge…

MySQL客观题

MySQL客观题 在数据库的三级模式结构中&#xff0c;描述数据库中全体数据的全局逻辑结构和特性的是&#xff08; A &#xff09; A 模式 B 内模式 C 存储模式 D 外模式 数据库系统的特点是&#xff08; A &#xff09;、数据独立、减少数据冗余、避免数据不一致和加强了数据保…

自定义jar项目上传到Maven中央仓库/maven仓库/阿里云效仓库

1.前言 如何把自己的项目Jar或者Starter上传到Maven中央仓库中。 2.https://issues.sonatype.org/注册账号 3.注册成功 登录新建项目 摘要随意填写 重点来了 groupId 如果有自己域名的就自己域名com.xxx 如果用的gitee那么填写com.gitee.自己gitee的用户名 projectUrl&…

ASEMI代理AD8603AUJZ-REEL7原装ADI车规级AD8603AUJZ-REEL7

编辑&#xff1a;ll ASEMI代理AD8603AUJZ-REEL7原装ADI车规级AD8603AUJZ-REEL7 型号&#xff1a;AD8603AUJZ-REEL7 品牌&#xff1a;ADI /亚德诺 封装&#xff1a;SOT-23-5 批号&#xff1a;2023 安装类型&#xff1a;表面贴装型 引脚数量&#xff1a;5 类型&#xff1…

WOT全球技术创新大会2023整装待发,一起去见证科技的力量

从2012年开始&#xff0c;51CTO已经连续11年、累计奉献了19场WOT全球技术创新大会。 11年时间&#xff0c;有的技术如神话般崛起又泡沫般消失&#xff1b;有的技术历经时光磨砺而愈发彰显价值&#xff1b;有的技术充满争议而争议还在继续。 为什么我们会持续策划、举办WOT&am…

Pyspark_用户画像项目_1(数据通过Sqoop导入到Hive中)

Pyspark 注&#xff1a;大家觉得博客好的话&#xff0c;别忘了点赞收藏呀&#xff0c;本人每周都会更新关于人工智能和大数据相关的内容&#xff0c;内容多为原创&#xff0c;Python Java Scala SQL 代码&#xff0c;CV NLP 推荐系统等&#xff0c;Spark Flink Kafka Hbase Hi…

bdydns.com是什么网站?

bdydns.com是网站域名接入百度云CDN后&#xff0c;域名CNAME解析的记录值。网站接入百度云CDN&#xff0c;需要添加CNAME域名解析&#xff0c;例如新手站长网接入百度CDN后&#xff0c;域名CNAME解析到百度CDN地址&#xff1a;www.xinshouzhanzhang.com.a.bdydns.com&#xff0…

DQN算法详解

DQN算法详解 一.概述 强化学习算法可以分为三大类&#xff1a;value based, policy based 和 actor critic。常见的是以DQN为代表的value based算法&#xff0c;这种算法中只有一个值函数网络&#xff0c;没有policy网络&#xff0c;以及以DDPG,TRPO为代表的actor-critic算法…

两层神经网络的参数求导过程

假设输入数据 x∈Rnx\in\mathbb{R}^nx∈Rn&#xff0c;两层神经网络有以下形式&#xff1a; 其中 W1∈RhnW_1\in\mathbb{R}^{h\times n}W1​∈Rhn 和 W2∈RmhW_2\in\mathbb{R}^{m\times h}W2​∈Rmh 分别是第一层和第二层的权重矩阵&#xff0c;b1∈Rhb_1\in\mathbb{R}^hb1​∈…

如何高效地设计测试用例并评审

编写出好的测试用例是每一个测试工程师的职责&#xff0c;但在实际工作中大家写的测试用例往往需要不断地修改才能使用&#xff0c;这不仅浪费了时间&#xff0c;还容易让测试工程师产生自我否定的情绪&#xff0c;甚至在团队中产生各种矛盾。 那如何高效地设计测试用例呢&…