Vue3的script setup语法糖这么好用的吗????
最近发现这个vue3居然还可以这样写
- 原始写法
<template>
<h1>Tangdoudou</h1>
<h1>{{ num }}</h1>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
name: 'App',
setup() {
const num = 123;
return { num };
},
});
</script>
- 等同于 (注意观察我注释掉的东西)
<template>
<h1>Tangdoudou</h1>
<h1>{{ num }}</h1>
</template>
<script setup>
// import { defineComponent } from 'vue';
// export default defineComponent({
// name: 'App',
// setup() {
const num = 123;
// return { num };
// },
// });
</script>

- 我直接把lang=ts去了,但是我们可以选择其他方式:
- 在script setup 中使用defineProps,defineEmits会报未定义,需要配置eslint
- 根据官网配置
- 链接:https://eslint.vuejs.org/user-guide/#faq
- 代码
'vue/setup-compiler-macros': true

响应式数据
<template>
<h3>响应式数据</h3>
<h3>{{ str }}</h3>
</template>
<script setup>
import { ref } from 'vue';
var str = ref('11122334');
</script>

点击改变数据
<template>
<h3>响应式数据</h3>
<h3>{{ str }}</h3>
<button @click="str += '数据变啦~'">点击改变str</button>
</template>
<script setup>
import { ref } from 'vue';
var str = ref('11122334');
</script>
父子组件传值
- 子组件
<template>
<div style="background-color: pink">
<h4>这个是子组件的内容</h4>
<button @click="onMyClick">点击后传输信息给父组件</button>
<h4>这是父组件传入的信息:{{ msg }}</h4>
</div>
</template>
<script >
// 声明一些额外的配置选项
export default {
name: 'ChildPage',
};
</script>
<script setup>
const props = defineProps({
msg: String,
});
// 定义emit事件
const emit = defineEmits({
childFun: null,
});
function onMyClick() {
emit('childFun', { val: '我是子组件的值~啦啦啦~~' });
}
</script>
- 父组件
<template>
<h3>响应式数据</h3>
<h3>{{ str }}</h3>
<button @click="str += '数据变啦~'">点击改变str</button>
<ChildPage msg="1234" @childFun="parentFun"></ChildPage>
</template>
<script setup>
import ChildPage from './ChildPage.vue';
import { ref } from 'vue';
var str = ref('11122334');
const parentFun = (e) => {
console.log('parentFun:', e);
};
</script>

对外界暴露组件实例
- 子组件
<script lang="ts" setup>
import { ref } from 'vue'
const a = 1
const b = ref('2')
defineExpose({
a,
b
})
</script>
- 父组件
<template>
<Child ref="refChild" />
<div @click="onClick">123</div>
</template>
<script lang="ts" setup>
import Child from './Child.vue'
const refChild = ref<any>(null)
function onClick () {
console.log(refChild.value) // { a: 1, b: '2' }
}
</script>
await也简单啦
- 在script setup下可以直接使用await
<script setup>
const post = await fetch(`/apiXXX`).then(res => {})
</script>
slots 和 attrs
<script lang="ts" setup>
import { useSlots, useAttrs } from 'vue'
const slots = useSlots()
const attrs = useAttrs()
</script>
欢迎大家指出文章需要改正之处~
学无止境,合作共赢
欢迎路过的小哥哥小姐姐们提出更好的意见哇~~
Vue3的script setup语法糖这么好用的吗????的更多相关文章
- vue3 学习笔记(九)——script setup 语法糖用了才知道有多爽
刚开始使用 script setup 语法糖的时候,编辑器会提示这是一个实验属性,要使用的话,需要固定 vue 版本. 在 6 月底,该提案被正式定稿,在 v3.1.3 的版本上,继续使用但仍会有实验 ...
- 【Vue3.0】关于 script setup 语法糖的用法
script setup - 简介 先来看一看官网关于 <script setup> 的介绍: 要彻底的了解 setup 语法糖,你必须先明确 setup() 这个 组合式API 官网中对 ...
- vue3.0+ts+setup语法糖props写法
写法一 import defaultImg from '@/assets/images/defaultImg.png' const props = defineProps({ src: { type: ...
- 基于SqlSugar的开发框架循序渐进介绍(11)-- 使用TypeScript和Vue3的Setup语法糖编写页面和组件的总结
随着Vue3和TypeScript的大浪潮不断袭来,越来越多的Vue项目采用了TypeScript的语法来编写代码,而Vue3的JS中的Setup语法糖也越来越广泛的使用,给我们这些以前用弱类型的JS ...
- Vue3中setup语法糖学习
目录 1,前言 2,基本语法 2,响应式 3,组件使用 3.1,动态组件 3.2,递归组件 4,自定义指令 5,props 5.1,TypeScript支持 6,emit 6.1,TypeScript ...
- Vue3.2中的setup语法糖,保证你看的明明白白!
vue3.2 到底更新了什么? 根据原文内容的更新的内容主要有以下 5 块: 1.SSR:服务端渲染优化.@vue/server-renderer包加了一个ES模块创建, 与Node.js解耦,使在非 ...
- 一篇文章讲明白vue3的script setup,拥抱组合式API!
引言 vue3除了Composition API是一个亮点之外,尤大大又给我们带来了一个全新的玩意 -- script setup,对于setup大家相信都不陌生,而对于script setup有些同 ...
- vue3 script setup 定稿
vue script setup 已经官宣定稿.本文主要翻译了来自 0040-script-setup 的内容. 摘要 在单文件组件(SFC)中引入一个新的 <script> 类型 set ...
- Vue3 Composition API写烦了,试试新语法糖吧—setup script
前言 Vue3发布近一年了,相信大家对Vue3的新特性,新语法都很熟悉了.那么在使用Composition API的过程中,有没有觉得整个过程比较繁琐.比如你的模板里用到了大量的state和方法的时候 ...
随机推荐
- JS逆向实战2--cookie-AcwScV2加密—某招标信息网
cookies的获取 首先拿到第一次访问原链接 拿到acw_tc的值,然后放到session中去 再用这个session再次访问原链接拿到js加载的加密的真实数据.用了一些反混淆. 最后获取这个数据中 ...
- java-代码编写规范
命名 变量/方法:小驼峰. mBtnHelloWorld 控件 mBtnTest: 按键 mTvTest:文本
- nginx安装及相关操作
工作中经常用到nginx,今天写个自动部署nginx的脚本.nginx版本选用:1.20.2 1.创建nginx安装脚本(nginx.sh) [root@iZ2ze7uphtapcv51egcm7rZ ...
- Nginx重写功能(rewrite与location)
一.常用的Nginx 正则表达式 二.访问路由location 2.1location的分类 location 大致可以分为三类: 精准匹配:location = / {} 一般匹配:location ...
- ansible回调插件介绍(待完成)
简介 ansible回调插件(callback plugins)允许为事件添加一些额外响应.这里的事件包括了执行任务(task)的结果,例如(ok.failed.unreachable.skipped ...
- 4.drf-版本管理
根据RESTful规范,后端API中需要体现出版本,DRF中支持5种版本的设置,常见的三种如下 1. URL的GET中传递参数 在视图类中定义 from rest_framework.versioni ...
- 嵌入式-C语言基础:二级指针
二级指针:可以理解为指向指针的指针,存放的是指针变量的地址. 下面用一级指针来保存一个指针变量的地址: #include<stdio.h> int main() { int *p1; in ...
- 2022-11-02 Acwing每日一题
逆序对的个数 给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量. 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆 ...
- Python: 对程序做性能分析及计时统计
1.对整个程序的性能分析 如果只是想简单地对整个程序做计算统计,通常使用UNIX下的time命令就足够了. (base) ➜ Learn-Python time python someprogram. ...
- 零基础入门数据挖掘——二手车交易价格预测:baseline
零基础入门数据挖掘 - 二手车交易价格预测 赛题理解 比赛要求参赛选手根据给定的数据集,建立模型,二手汽车的交易价格. 赛题以预测二手车的交易价格为任务,数据集报名后可见并可下载,该数据来自某交易平台 ...