vue3中的写法以及,一些语法糖

news/2025/1/2 1:47:26/

vue3新增setup,属性执行比 created更早,同时setup中this不会指向实例)这个方法在onBeforeMounted之前被调用。


定义数据需要在数据前面加ref,ref在vue3中是将数据转换成响应式数据结构的一种,

因为vue3中没有了data(){ },那么就没办法劫持数据做到响应式数据,所以使用ref。

以下解释ref:

1.什么是ref

ref和reactive一样,也是用来实现响应式数据的方法

由于reactive必须传递一个对象,所以在实际开发中如果只是想让某个变量实现响应式的时候回非常麻烦

所以Vue3提供了ref方法实现简单值得监听

2.ref本质

ref底层其实还是reactive,所以当运行时系统会自动根据传入的ref转换成reactive.

3.ref注意点

在vue中使用ref的值不用通过value获取

在js中使用ref的值必须通过value获取

<template><div>xxx</div>
</template>
<script setup>//setup自带语法糖//setup中没有this,所有的方法必须引入后使用 import {ref} from 'vue'let aa  =ref(123)
</script>
----------------------------------------
//系统自动return 相当于以下写法
----------------------------------------
<template><div>xxx</div>
</template>
<script>
import {ref} from 'vue'
export default{setup() {//定义数据需要在数据前面加reflet aa=ref(123)return{aa}}
}
</script>

定义函数的写法,方法的绑定

<template><div><button @click="btn"></button></div>
</template>
<script setup>
// 定义函数的写法
let btn = ()=>{console.log("匿名函数");
}
function btn(){console.log('普通函数');
}
</script>

定义组件使用defineProps语法糖,在 <script setup> 中可直接使用 defineProps 和 defineEmits API 来声明 props 和 emits ,它们具备完整的类型推断并且在 <script setup> 中是直接可用的,无需引入。

    //子组件中-- 定义Propsconst props = defineProps<{msg: number,name: string}>()
//-------------------------//父组件
<Aone name="结果" :msg="1"></Aone>

下面是一个综合小demo:

//组件名 Aone.vue
<template>这是a组件 -- {{ msg }}
</template><script setup lang="ts">const props = defineProps({msg: String
})</script><style></style>
<template><div>[{{ count }}]<button @click="inf">+1</button><br>----------<br></div><div><!-- 引入a组件 --><Aone :msg="msg"></Aone></div><div><!-- 绑定输入框到msg --><input type="text" v-model="msg"></div></template><script setup lang="ts">
import { ref } from 'vue';
import Aone from './components/Aone.vue';const count = ref(0)
// msg初值为123
const msg = ref('123')
const inf = () => {count.value++
}</script><style></style>


http://www.ppmy.cn/news/10634.html

相关文章

TypeScript学习(四)函数

文章目录1.定义函数2.函数类型3.可选类型和默认参数4.剩余参数5.this1.定义函数 使用function关键字来定一个函数。 function hello() {console.log("hello") }hello(); // hello2.函数类型 和变量一样&#xff0c;在TypeScript中&#xff0c;函数同样可以像变量一样…

宝塔Linux面板安装MySQL数据库,并且开启远程链接

1.宝塔面板【软件商店】->【应用搜索】&#xff0c;搜索MySQL,然后点击安装想要的版本&#xff0c;我这边是安装的5.6版 2. 安装完后重置数据库管理员密码 3.Navicat Premium 15连接数据库 4.外网navicat工具无法连接数据库的处理办法 4.1输入 mysql -u root -p 后回车&a…

我与CSDN2022年的故事

目录 人生之中&#xff0c;初识博客 踏上csdn博客之路 审核成后的10分钟 第一条博客成功发布 得到恩师的鼓励 发布后的二十分钟 星星之火&#xff0c;可以燎原 每时每刻&#xff0c;都在博客 开发热爱&#xff0c;愈发癫狂 传播之路&#xff0c;渐渐开始 泥泞路上&a…

9.Isaac教程-- Laikago 四足机器人的自主导航

Laikago 四足机器人的自主导航 开发智能机器人系统是一项多学科的工作&#xff0c;集成了动力学、控制、计算机视觉、人工智能等。 很难掌握所有这些领域。 即使你掌握了所有这些&#xff0c;也需要花费大量时间才能正确和稳健。 为了帮助机器人专家加速智能机器人的开发&…

架构设计---用户加密处理

前言&#xff1a; 在互联网各种安全问题中&#xff0c;最能引发话题&#xff0c;刺激大众神经的就是用户的泄密问题&#xff0c;数据库被拖库导致所有的数据泄露&#xff0c;这种系统安全问题涉及的因素可能有很多&#xff0c;大部分和开发软件的程序员没有关系&#xff0c;但…

SOA 和微服务有何区别?

玩过 Dubbo 的小伙伴应该都有听说过一个概念叫做 SOA&#xff0c;每当我们说起微服务的时候&#xff0c;很多人就会去纠结这和 SOA 有啥关系呀&#xff1f;感觉换汤不换药呀。 今天松哥来稍微和小伙伴们讨论下这个话题&#xff0c;我们一起来看看 SOA 和微服务到底有何异同。 …

【数据结构趣味多】循环队列

目录 函数介绍及模拟实现 Front()函数 Rear()函数 enQueue()函数 deQueue()函数 isEmpty()函数 isFull()函数 循环队列模拟题 定义&#xff1a;把队列的头尾相连接的的顺序存储结构称为循环队列&#xff1b;循环队列的是由顺序表实现的。 为什么要使用循环队列&#…

吊炸天,springboot的多环境配置一下搞明白了!

1、 使用springboot的profile命名规则profile用于多环境的激活和配置&#xff0c;用来切换生产&#xff0c;测试&#xff0c;本地等多套不通环境的配置。如果每次去更改配置就非常麻烦&#xff0c;profile就是用来切换多环境配置的。在Spring Boot框架中&#xff0c;使用Profil…