Vue学习笔记(12)
迪丽瓦拉
2025-05-31 05:23:46
0次

12.1 步入Vue3

Vue3是一款流行的JavaScript框架Vue的最新版本,它于2020年9月正式发布。Vue3主要着重于性能的提升、更好的开发体验以及更好的代码组织方式。

Vue3的主要特性和改进:

  1. 更快的性能:Vue3对虚拟DOM进行了重构,通过优化渲染和更新算法,可以显著提高性能。
  2. 更小的包大小:Vue3对代码进行了精简和优化,使其比Vue2更小。
  3. Composition API:Vue3引入了Composition API,这是一种新的API风格,提供了更好的代码组织方式,使得开发人员可以更好地管理代码复杂度。
  4. 改进的TypeScript支持:Vue3通过TypeScript提供了更好的类型检查支持,这有助于减少代码错误和提高开发效率。
  5. Teleport:Vue3引入了Teleport,这是一种新的组件传送方式,可以方便地将组件渲染到DOM中的任何位置。
  6. 其他改进:Vue3还提供了许多其他改进,包括更好的错误处理、更好的调试支持、更好的跨平台支持等。

总体来说,Vue3是一个更强大、更易于使用和更快的框架,它为开发人员提供了更好的工具来构建现代Web应用程序。

12.2 setup

setup是Vue3引入的新选项,用于定义组件的状态和行为。在Vue2中,我们使用data、computed、methods等选项来定义组件的状态和行为,但在Vue 3中,setup选项被引入,以提供更清晰的代码组织和更灵活的API。

setup函数接收两个参数:props和context。props是组件的属性对象,可以在函数内部使用,context是一个对象,包含了一些属性和方法,如attrs、slots、emit等,用于访问组件的属性、插槽和自定义事件。

在setup函数内部,我们可以使用ref、reactive、computed等函数来定义组件的响应式数据和计算属性,还可以使用普通的JavaScript语法来定义方法和计算逻辑。例如:

import { ref, reactive, computed } from 'vue'
export default {props: {message: String},setup(props, context) {const count = ref(0)const state = reactive({name: 'Tom',age: 18})const doubleCount = computed(() => count.value * 2)function increment() {count.value++}return {count,state,doubleCount,increment}}
}

在模板中,我们可以直接访问setup函数返回的响应式数据、计算属性和方法。例如:


setup是Vue3中定义组件状态和行为的主要方式,它提供了更灵活、更清晰的API,可以帮助我们更好地组织代码。

12.3 响应式数据函数

12.3.1 ref函数

ref函数用于创建一个包装器对象,使得基本类型的值也可以响应式地更新。它接受一个初始值作为参数,并返回一个包装器对象,可以通过.value来访问包装的值,如下所示:

import { ref } from 'vue'
const count = ref(0)
console.log(count.value) // 0
count.value++ // 更新值
console.log(count.value) // 1

在模板中使用ref时,可以直接访问.value属性,如下所示:



12.3.2 reactive函数

reactive函数用于创建一个响应式的对象。它接受一个普通的JavaScript对象作为参数,并返回一个响应式代理对象,可以通过访问代理对象的属性来触发更新。例如:

import { reactive } from 'vue'
const state = reactive({count: 0,message: 'Hello, Vue 3!'
})
console.log(state.count) // 0
state.count++ // 更新对象属性
console.log(state.count) // 1

在模板中使用响应式对象时,可以直接访问对象的属性,如下所示:



12.3.3 ref和reactive函数的异同

ref和reactive是Vue3中用于创建响应式数据的两个函数,它们有一些相同点和不同点。

相同点:

  1. 都可以创建响应式数据,使得数据状态的更新更加自然和高效。
  2. 在使用上都可以像普通对象一样访问和修改属性。
  3. 都可以在setup函数内部使用。

不同点:

  1. ref函数用于创建一个包装器对象,使得基本类型的值也可以响应式地更新,而reactive函数用于创建一个响应式的对象。
  2. 使用ref函数创建的响应式数据在访问时需要通过.value来访问包装的值,而使用reactive函数创建的响应式数据直接访问对象属性即可。
  3. ref函数只能包装一个值,而reactive函数可以包装一个对象,可以包含多个属性。
  4. ref函数返回的是一个包装器对象,而reactive函数返回的是一个响应式代理对象。
  5. ref函数还有一些其他的API,如.unref()、.isRef()等,用于对包装器对象进行操作和判断,而reactive函数则没有。

ref和reactive函数是Vue 3中用于创建响应式数据的两种常用方式,它们使得数据状态的更新更加自然和高效。使用哪种方式取决于需要创建的数据类型,如果是基本类型,可以使用ref,如果是对象类型,可以使用reactive。

相关内容

热门资讯

AI做攻略、“双向奔赴”……国... 本文转自:人民网人民网记者 许维娜今年国庆假期,AI(人工智能)成了不少年轻人的“旅行搭子”。行前做...
合肥的这个“梗”, 翻篇了 社交平台的评论区,曾长期流传一句专属于合肥的黑色幽默。有人问合肥哪里好玩,本地网友半开玩笑地回复:合...
7万+旅游中高层都在的群,今天... 做旅游这行,资源卡位、渠道互通、项目落地——往往就差一个“对的机会”。我们的行业社群已聚集70,00...
一场帐篷音乐节,如何让井研从“... 帐篷音乐节现场封面新闻记者 周洪攀10月的研溪湿地,晚风里裹着柑橘的清甜与民谣的回响。夜幕降临,10...
白鹤翩翩落星愿,上海迪士尼度假... 10月9日,世界候鸟日前夕,上海迪士尼度假区星愿公园的湖风里多了一分白鹤的灵动。三座白鹤雕塑正式揭幕...
成都锦江边赏初秋枫叶飘飘 目前,成都锦江边国华街枫叶树红了。近年来,国华街附近的几条街都栽种了红枫树,是城区较集中看枫叶的点位...
GBTA:商务旅行正在复苏,但... 亚太正在成为全球商务旅行增长的重要引擎。在经历疫情后的快速反弹之后,全球商务旅行正在进入一个新的增长...
从景区焕新到节赛引流 邹城双节... 齐鲁网·闪电新闻10月9日讯 中秋、国庆“双节”假期,邹城市文化和旅游局提前谋划、周密部署,立足自身...
江山如此多娇 且看石楼今朝 金秋十月,黄河岸畔秋意盎然,丰收盛会喜迎国庆。本次石楼国庆文旅活动以“江山如此多娇,且看石楼今朝”为...
海南国庆假期接待游客475.4... 2026年国庆假期,海南接待游客475.40万人次,较2025年增长13.1%,较2024年增长15...