初学vue3与ts:setup与setup()下的数据写法

把setup写在script里

<template><div><div class="index-title">script setup</div><div class="title">字符串:</div><div class="title-sub">ref版:{{strRef}}</div><div class="title-sub">ref版模板字符串:{{strRefTem}}</div><div class="title-sub">reactive版:{{strReactive.str}}</div><div class="title-sub">reactive版模板字符串:{{strReactiveTem.str}}</div><div class="title">数字:</div><div class="title-sub">ref版:{{numRef}}</div><div class="title-sub">reactive版:{{numReactive.num}}</div><div class="title">布尔:</div><div class="title-sub">ref版:{{booRef}}</div><div class="title-sub">reactive版:{{booReactive.boo}}</div><div class="title">数组:</div><div class="title-sub flex"><div>ref版:</div><div v-for="(item,index) in arrRef" :key="index">{{item}}</div></div><div class="title-sub flex"><div>reactive版:</div><div v-for="(item,index) in arrReactive.arr" :key="index">{{item}}</div></div><div class="title">用any定义一个定时器,10s后停止:</div><div class="title-sub">{{timeTam}}s</div><div class="title">对象:</div><div class="title-sub">ref版:name:{{objRef.name}},age:{{objRef.age}}</div><div class="title-sub">reactive版:name:{{objReactive.name}},age:{{objReactive.age}}</div></div>
</template><script setup lang="ts">import { ref, reactive } from 'vue' //引入,不要问为什么// 字符串// ref版 也可以用 ref<string>('我是ref版')const strRef = ref('我是ref版')// ref版-模板字符串const title = '你好,'const strRefTem = ref(`${title}我是模板字符串`)// reactive版const strReactive = reactive({str:'我是reactive版'})// reactive版-模板字符串const strReactiveTem = reactive({str:`${strRef.value}-模板字符串`})// 字符串重新赋值setTimeout(()=>{strRef.value = '我是ref版-2s后'strReactive.str = '我是reactive版-2s后'},2000)// 数字// ref版 也可以用 ref<number>(100)const numRef = ref(100)// reactive版const numReactive = reactive({num:100})// 布尔// ref版 也可以用 ref<boolean>(false)const booRef = ref(false)// reactive版const booReactive = reactive({boo:true})// 数组// ref版 也可以用 ref<object[]>([1,2,3,4])const arrRef = ref(['我','是','数','组'])// reactive版const arrReactive = reactive({arr:['上','面','说','的','没','错']})// 不限制类型const time = ref<any>(null)const timeTam = ref(0)time.value = setInterval(()=>{timeTam.value++;},1000)setTimeout(()=>{clearInterval(time.value)},10000)// 对象const objRef = ref({name:'林',age:18})// reactive版const objReactive = reactive({name:'吴',age:11})
</script><style>.index-title{font-size: 24px;font-weight: bold;}.title{font-weight: bold;font-size: 20px;padding-top: 20px;padding-left: 20px;}.title-sub{padding-left: 40px;margin-top: 10px;}.flex{display: flex;align-items: center;}
</style>

在script里用setup()

<template><div><div class="index-title">script setup()</div><div class="title">字符串:</div><div class="title-sub">ref版:{{strRef}}</div><div class="title-sub">ref版模板字符串:{{strRefTem}}</div><div class="title-sub">reactive版:{{strReactive.str}}</div><div class="title-sub">reactive版模板字符串:{{strReactiveTem.str}}</div><div class="title">数字:</div><div class="title-sub">ref版:{{numRef}}</div><div class="title-sub">reactive版:{{numReactive.num}}</div><div class="title">布尔:</div><div class="title-sub">ref版:{{booRef}}</div><div class="title-sub">reactive版:{{booReactive.boo}}</div><div class="title">数组:</div><div class="title-sub flex"><div>ref版:</div><div v-for="(item,index) in arrRef" :key="index">{{item}}</div></div><div class="title-sub flex"><div>reactive版:</div><div v-for="(item,index) in arrReactive.arr" :key="index">{{item}}</div></div><div class="title">用any定义一个定时器,10s后停止:</div><div class="title-sub">{{timeTam}}s</div><div class="title">对象:</div><div class="title-sub">ref版:name:{{objRef.name}},age:{{objRef.age}}</div><div class="title-sub">reactive版:name:{{objReactive.name}},age:{{objReactive.age}}</div></div>
</template><script lang="ts">import { defineComponent, ref, reactive } from 'vue' //引入,不要问为什么export default defineComponent({setup() {// 字符串// ref版 也可以用 ref<string>('我是ref版')const strRef = ref('我是ref版')// ref版-模板字符串const title = '你好,'const strRefTem = ref(`${title}我是模板字符串`)// reactive版const strReactive = reactive({str:'我是reactive版'})// reactive版-模板字符串const strReactiveTem = reactive({str:`${strRef.value}-模板字符串`})// 字符串重新赋值setTimeout(()=>{strRef.value = '我是ref版-2s后'strReactive.str = '我是reactive版-2s后'},2000)// 数字// ref版 也可以用 ref<number>(100)const numRef = ref(100)// reactive版const numReactive = reactive({num:100})// 布尔// ref版 也可以用 ref<boolean>(false)const booRef = ref(false)// reactive版const booReactive = reactive({boo:true})// 数组// ref版 也可以用 ref<object[]>([1,2,3,4])const arrRef = ref(['我','是','数','组'])// reactive版const arrReactive = reactive({arr:['上','面','说','的','没','错']})// 不限制类型const time = ref<any>(null)const timeTam = ref(0)time.value = setInterval(()=>{timeTam.value++;},1000)setTimeout(()=>{clearInterval(time.value)},10000)// 对象const objRef = ref({name:'林',age:18})// reactive版const objReactive = reactive({name:'吴',age:11})return{strRef,strRefTem,strReactive,strReactiveTem,numRef,numReactive,booRef,booReactive,arrRef,arrReactive,time,timeTam,objRef,objReactive}}})
</script><style>.index-title{font-size: 24px;font-weight: bold;}.title{font-weight: bold;font-size: 20px;padding-top: 20px;padding-left: 20px;}.title-sub{padding-left: 40px;margin-top: 10px;}.flex{display: flex;align-items: center;}
</style>

从上面的代码来看,setup比setup()方便的多,毕竟少了return,其他地方没什么改变,都一样
在这里插入图片描述

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

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

相关文章

Vue3挂载完毕后,隐藏dom再重新加载组件的方法

组件原本是在PC端使用的&#xff0c;现在需要把组件再封装一次&#xff0c;供app调用&#xff0c;但是在app上会显示tag栏&#xff0c;有占位影响空间&#xff0c;所以需求去掉头部tag&#xff0c;只显示下方组件。 实现方法&#xff0c;以前是直接引用的组件&#xff0c;现在改…

minio客户端基本操作

minio客户端基本操作 桶 创建桶 如果要创建新的桶 输入名称&#xff0c;点击创建即可&#xff0c;默认权限就行 删除桶 点击要删除的桶 点击删除 修改桶 如果哪天需要修改桶的权限或者其他信息&#xff0c;还是先点击这个桶进入详情 然后点击要修改的属性&#xff0c;选择…

活动回顾|阿里云云原生 Serverless 技术实践营 深圳站回放PPT下载

11月24日“阿里云云原生 Serverless 技术实践营”深圳站圆满落幕。活动受众以关注 Serverless 技术的开发者、企业决策人、云原生领域创业者为主&#xff0c;活动形式为演讲、动手实操&#xff0c;让开发者通过一个下午的时间增进对 Serverless 技术的理解&#xff0c;快速上手…

Fuzz进阶教学——人工智能在模糊测试中的应用

【参考文献】白海波.人工智能技术在模糊测试中的应用[J].数字技术与应用,2023,41(08):16-18.DOI:10.19695/j.cnki.cn12-1369.2023.08.05. 目录 摘要 一、模糊测试简介 1、原理 2、工作流程 3、分类 4、应用领域 二、人工智能在模糊测试中的应用 1、人工智能技术 2、人…

内衣洗衣机怎么选?内衣洗衣机便宜好用的牌子推荐

相信不少用户并不太在意衣服和内衣裤裤能不能同时洗&#xff0c;每次清洗都是把内衣裤与其他衣服一起放入洗衣机清洗&#xff0c;其实内衣裤不能直接跟大件的衣物一起放入洗衣机洗的&#xff0c;很容易会造成我们皮肤的瘙痒&#xff0c;我们大部分时间都在户外&#xff0c;暴露…

NineData:帮助开发者用好数据和云

导语 &#xff1a;数据库工具是指用于创建、设计、管理、开发、维护和优化数据库的一系列软件工具&#xff0c;包括数据库设计工具、数据库迁移与复制、数据库管理工具、数据安全工具等&#xff0c;这些工具可以帮助数据库管理员和开发人员更高效地管理、使用和开发数据库&…

嘴尚绝卤味添加草本物质的奥秘,让你品尝健康美味

每当提起卤味&#xff0c;相信很多人的口水都会开始分泌。确实&#xff0c;卤味作为一种深受人们喜爱的美食&#xff0c;其独特的口感和味道总是能够满足人们的味蕾。而在众多卤味品牌中&#xff0c;嘴尚绝卤味因其添加了草本物质而备受关注。那么&#xff0c;嘴尚绝卤味为什么…

Vue框架学习笔记-Object.defineproperty函数

文章目录 前文提要Object.defineProperty作用Object.defineProperty参数使用例图getter&#xff0c;也就是get函数setter&#xff0c;也就是set函数 前文提要 本人仅做个人学习记录&#xff0c;如有错误&#xff0c;请多包涵 Object.defineProperty作用 当在js中声明了一个变…

获取数据库中最占用内存的sql语句

SELECT TOP 20 total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)], last_execution_time AS [最后一次执行时间],min_worker_time /1000 AS [最小执行时间(ms…

推荐你一个基于Koin, Ktor Paging等组件的KMM Compose Multiplatform项目

推荐你一个基于Koin, Ktor & Paging等组件的KMM Compose Multiplatform项目 Kotlin Multiplatform Mobile&#xff08;KMM&#xff09;已经从一个雄心勃勃的想法发展成为一个稳定而强大的框架&#xff0c;为开发人员提供了在多个平台上无缝共享代码的能力。通过最近的稳定…

当「华为还是备选,迪爹还是迪子」时宇宙厂一面原题

写在前面 2021 年还是互联网元年&#xff0c;当时常规的华为 Offer 还是普遍人的备选&#xff0c;如今的迪爹&#xff08;BYD&#xff09;也还是 "来投就给 Offer" 的迪子。 只有字节&#xff0c;当时是公认炙手可热的"宇宙厂"。 作为在 2021 就提前体验了…

青少年心肺复苏培训公益课堂在京开讲

7月30日上午&#xff0c;北京中康联公益基金会联合首都医科大学附属北京佑安医院心血管内科共同举办了“互佑心安——青少年心肺复苏培训公益课堂”。 突发疾病与意外伤害&#xff0c;是生存与健康的最大威胁。据统计&#xff0c;每年全球约有700万人死于心源性猝死&#xff0c…