vue3+ts部分场景示例

模板语法

插值变量

div{{插值}}div
const message: number = 84;				指定变量为数字类型
const message: string='小明' ;			指定字符串类型
const message: boolean=false ;			指定布尔值类型
const message: any='小明' ;				any指定任意类型
const message: object={} ;				指定对象类型
const message: array=[]					指定数组类型
...
...

在这里插入图片描述

插值表达式
在这里插入图片描述
在这里插入图片描述

v-for循环

普通数组
<div v-for="item in arr")>{{item}}div
const arr:Array<number>=[1,2,3,4,5]

数组包对象
div{{插值}}div
const arr:Array<any'>=[{name:"小明",age:"15"},{name:"小明",age:"15"}]

v-modle双向绑定

	<input v-model="message" type="text">
div{{message}}div

setup内
import {ref} from "vue"
const message = ref("test")

在这里插入图片描述

ref修改对象属性

ref支持所有的类型
ref操作要输出或者修改对象内的某一个属性前面要加.value

推荐数据比较复杂时候才推荐使用泛型
在这里插入图片描述
普通对象这样使用(代码可以自己类型推导分辨出来)
在这里插入图片描述

reactive修改对象属性

reactive只支持引用类型
reactive修改操作属性不需要加.value
reactive适用于操作一些表单数据使用

在这里插入图片描述使用v-model绑定的属性,在自定义更改内容后输出内容也更着变化
在这里插入图片描述

reactive操作数组

reactive不能直接赋值,会破坏掉响应式对象

在这里插入图片描述

在这里插入图片描述

解决方式:数组可以使用push加解构赋值在这里插入图片描述

在这里插入图片描述

toRef

非响应式对象使用不起作用

作用:

创建一个 ref 对象,其value值指向另一个对象中的某个属性。

语法:

<script setup lang="ts">
import { ref, reactive, toRef } from "vue";
const obj = reactive({ name: "小米", age: 18 });
const person = toRef(obj, "name");
const change = () => {
  person.value = "小刚";
  console.log(person);
};
</script>

<template>
  <div>{{ obj }}</div>
  <div>toRef:{{ person }}</div>
  <button @click="change()" type="button" style="width: 50px; height: 20px">
    修改
  </button>
</template>

应用:

要将响应式对象中的某个属性单独提供给外部使用时。(更改person字段时,原obj对象字段也更着改变)

toRefs

toRefs与toRef功能一致,但可以批量创建多个 ref 对象,语法:toRefs(person)

对象解构,这个时候如果用到reactive,是无法实现响应式效果的,需要配合torefs

语法:

<template>
  <div>
    <button @click="btn">+</button>
    <div>{{ age }}</div>
  </div>
</template>
 
<script setup>
import { reactive, toRefs } from "vue";

const info = reactive({
  name: "zyb",
  age: 18,
});
let { age, name } = toRefs(info);

const btn = () => {
  age.value++;
  console.log("age---", age.value);
};
</script>
 
<style>
</style>

使用场景

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上流星&洒下星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值