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

news2024/12/22 18:13:41

把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.coloradmin.cn/o/1251549.html

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

相关文章

【数据结构】树的概念以及二叉树

目录 1 树概念及结构 1.1 树的概念 1.3 树的存储 2 二叉树的概念及结构 2.1 概念 2.2 特殊的二叉树 2.3 二叉树的性质 2.4 二叉树的存储结构 1 树概念及结构 1.1 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组…

原生实现底部弹窗效果 h5 小程序

<template><div class"home"><div class"btn" click"showPopupshow">弹出底部蒙层</div><div class"popup " catchtouchmove"true" :class"showPopup" ><div class"mask&q…

福州大学《嵌入式系统综合设计》实验六:图像加权融合

一、实验目的 掌握bmcv_image_add_weighted的使用 二、实验内容 搭建BMCV环境并成功运行加权融合例程 三、开发环境 开发主机&#xff1a;Ubuntu 22.04 LTS 硬件&#xff1a;算能SE5 本地如果有SE5硬件&#xff0c;则可以PC机作为客户端&#xff0c;SE5作为服务器端。本…

Kafka系列 - 生产者客户端架构以及3个重要参数

整体架构 整个生产者客户端由两个县城协调运行&#xff0c;这两个线程分别为主线程和Sender线程&#xff08;发送线程&#xff09;。 主线程中由KafkaProducer创建消息&#xff0c;然后通过可能的拦截器&#xff0c;序列化器和分区器之后缓存到消息累加器&#xff08;RecordAc…

歌手荆涛演唱的《春节回家》,一种情感的表达和文化的传承

歌手荆涛演唱的《春节回家》&#xff0c;一种情感的表达和文化的传承 春节回家&#xff0c;是中国传统文化中最为重要的传统节日之一&#xff0c;也是亿万华夏儿女最为期待的日子。每当春节临近&#xff0c;无论身在何处&#xff0c;人们都会收拾行囊&#xff0c;踏上归途&…

论文阅读_生成式Agent

英文名称: Generative Agents: Interactive Simulacra of Human Behavior 中文名称: 生成代理&#xff1a;**人类行为的交互式模拟** 文章: http://arxiv.org/abs/2304.03442 代码: https://github.com/joonspk-research/generative_agents 作者: Joon Sung Park 机构: 斯坦福大…

FireAlpacaforMac/win中文版—专业绘图软件释放你的创造力!

FireAlpaca是一款专业绘图软件&#xff0c;适用于Mac和Windows操作系统。无论你是初学者还是专业绘画师&#xff0c;FireAlpaca都能为你提供一个简单、强大的绘画平台&#xff0c;释放你的创造力。 首先&#xff0c;FireAlpaca拥有丰富的绘画工具和功能。它提供了各种绘画笔刷…

土壤多参数自动监测站实时守护农业的根基

WX-GSSQ10 随着科技的不断发展&#xff0c;农业领域也开始享受到技术进步带来的红利。其中&#xff0c;土壤多参数自动监测站的出现&#xff0c;为农业的精准管理和高效发展提供了强有力的支持。它像一位永不疲倦的哨兵&#xff0c;24小时全天候监测着土壤的状况&#xff0c;为…

LabVIEW当鼠标悬停在图形曲线上时显示坐标

LabVIEW当鼠标悬停在图形曲线上时显示坐标 在波形图上显示波形数据后&#xff0c;当鼠标放在波形图的曲线上时&#xff0c;如何自动显示对应点的坐标&#xff1f; 1. 创建事件结构&#xff0c;选择“波形图”作为“事件源”&#xff0c;选择“鼠标移动”作为“事件”&a…

深入解析:如何开发抖音票务小程序

当下&#xff0c;开发抖音票务小程序成为了吸引年轻用户群体的一种创新方式。本文将深入解析如何开发抖音票务小程序&#xff0c;探讨关键步骤和技术要点。 1.确定需求和功能 考虑到抖音的用户特点&#xff0c;可以加入与短视频相关的票务功能&#xff0c;如在线购票、观影记录…

中间件渗透测试-Server2131(解析+环境)

B-10&#xff1a;中间件渗透测试 需要环境的加qq 任务环境说明&#xff1a; 服务器场景&#xff1a;Server2131&#xff08;关闭链接&#xff09; 服务器场景操作系统&#xff1a;Linux Flag值格式&#xff1a;Flag&#xff5b;Xxxx123&#xff5d;&#xff0c;括…

【后端卷前端】

为啥现在对后端要求这么高?为啥不要求前端会后端呢? 可能是后端人太多了,要求后端需要会前端的框架(vue react angular ), 这不我为了适应市场的需求来系统的学习vue了: 生成一个基础的vue项目 创建vue项目 vue create projectname 创建vitevue npm init vitelatest p…

STM32 启动文件分析

STM32 启动文件分析 基于STM32F103VET6芯片的 startup_stm32f10x_hd.s 启动文件分析 设置栈&#xff0c;将栈的大小Stack_Size设置为0x00004900&#xff08;18688/102418KB&#xff09;&#xff0c;即局部变量不能大于18KB。&#xff08;EQU等值指令&#xff0c;将0x0000490…

「Verilog学习笔记」数据累加输出

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 在data_out准备好&#xff0c;valid_b拉高时&#xff0c;如果下游的ready_b为低&#xff0c;表示下游此时不能接收本模块的数据&#xff0c;那么&#xff0c;将会拉低ready…

UWB实时定位系统源码,历史活动轨迹显示,视频联动,电子围栏

UWB实时定位系统源码&#xff0c;工厂企业人员安全定位&#xff0c;UWB源码 行业背景 工业企业多存在很多有毒有害、高危高压等生产环境&#xff0c;带电设备众多&#xff0c;容易发生安全事故&#xff1b;人员只能凭记忆遵守各项生产安全规范&#xff0c;如某些危险区域范围、…

OpenCV简介及安装

前言 因为最近想做图像处理、人脸检测/识别之类的相关开发&#xff0c;所以就开始补OpenCV的相关知识&#xff0c;便开个专栏用于记录学习历程和在学习过程中遇到的一些值得注意的重点和坑。 学习过程基本上也是面向官方文档和Google。 简介 OpenCV(开源的计算机视觉库)是基于…

Python编程之魂之运算符的优先级教程

文章目录 前言优先级概述相同优先级结合性运算符优先级一览表运算符优先级重点说明结语关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资…

中职网安-Linux操作系统渗透测-Server2130(环境加qq)

B-9:Linux操作系统渗透测 任务环境说明:  服务器场景:Server2130  服务器场景操作系统:Linux(关闭链接) 1.通过本地PC中渗透测试平台Kali对靶机场景进行系统服务及版本扫描渗透测试,并将该操作显示结果中Apache服务对应的版本信息字符串作为Flag值提交; 2.…

救命~终于找到一款好看又舒适的家居服了

暖乎乎的软糯家居服 简直不要太好看太舒服了 双层舒棉绒舒适又暖和 防风收口设计&#xff0c;时尚与实用性兼具 经典版型不挑人穿 居家外出都可哦&#xff01;&#xff01;

03 _ 系统设计目标(一):如何提升系统性能?

提到互联网系统设计&#xff0c;可能听到最多的词就是“三高”&#xff0c;也就是“高并发”“高性能”“高可用”&#xff0c;它们是互联网系统架构设计永恒的主题。这里将整体探讨下高并发系统设计的目标&#xff0c;然后在此基础上&#xff0c;探讨下&#xff1a;如何提升系…