Vue3中computed计算属性函数

简介: Vue3中computed计算属性函数

目标:现在vue3的使用越来越普遍了,vue3这方面的学习我们要赶上,今天说一下vue3中computed计算属性的使用。


computed函数在vue2中我们都了解过,当我们需要一个值,这个值随着其他值变化而变化,我们就将其放进computed中,computed是用来定义计算属性的。


1. 基本使用:只读


<template>
<div>
<div>计算属性</div>
<hr>
<button @click='age=25'>点击</button>
<div>今年:{{age}}岁了</div>
<div>明年:{{nextAge}}岁了</div>
</div>
</template>
 <script>
 import { ref, computed } from 'vue'
 export default {
 name: 'App',
   setup () {
 // 计算属性:简化模板
 // 应用场景:基于已有的数据,计算一种数据
 const age = ref(18)
 // 计算属性基本使用
 const nextAge = computed(() => {
 // 回调函数必须return,结果就是计算的结果
 // 如果计算属性依赖的数据发生变化,那么会重新计算
 return age.value + 1
     })
 return { age, nextAge }
   }
 }
 </script>
 <style lang="less">
 </style>

总结:Vue3中计算属性也是组合API风格

  1. 回调函数必须return,结果就是计算的结果
  2. 如果计算属性依赖的数据发生变化,那么会重新计算
  3. 不要在计算中中进行异步操作


2. 高级用法:可读可写


<template>
<div>
<div>计算属性</div>
<hr>
<button @click='age=25'>点击</button>
<button @click='nextAge=28'>点击修改</button>
<div>今年:{{age}}岁了</div>
<div>明年:{{nextAge}}岁了</div>
</div>
 </template>
 <script>
 import { ref, computed } from 'vue'
 export default {
 name: 'App',
   setup () {
 // 计算属性:简化模板
 // 应用场景:基于已有的数据,计算一种数据
 const age = ref(18)
 // // 计算属性基本使用
 // const nextAge = computed(() => {
 //   // 回调函数必须return,结果就是计算的结果
 //   // 如果计算属性依赖的数据发生变化,那么会重新计算
 //   return age.value + 1
 // })
 // 修改计算属性的值
 const nextAge = computed({
       get () {
 // 如果读取计算属性的值,默认调用get方法
 return age.value + 1
       },
       set (v) {
 // v是计算属性下传递的实参
 // 如果要想修改计算属性的值,默认调用set方法
         age.value = v - 1
       }
     })
 return { age, nextAge }
   }
 }
 </script>
 <style lang="less">
 </style>


总结:

  1. 计算属性可以直接读取或者修改
  2. 如果要实现计算属性的修改操作,那么computed的实参应该是对象
  3. 读取数据触发get方法
  4. 修改数据触发set方法,set函数的形参就是你赋给他的值
相关文章
|
4天前
|
缓存 监控 UED
升级 Vue3 时,如何减少打包体积的增加?
升级 Vue3 时,如何减少打包体积的增加?
81 59
|
3天前
|
JavaScript
在vue3中(vite)引入unocss,安装配置unocss
在vue3中(vite)引入unocss,安装配置unocss
|
4天前
|
缓存 JavaScript 前端开发
「offer来了」从基础到进阶原理,从vue2到vue3,48个知识点保姆级带你巩固vuejs知识体系
该文章全面覆盖了Vue.js从基础知识到进阶原理的48个核心知识点,包括Vue CLI项目结构、组件生命周期、响应式原理、Composition API的使用等内容,并针对Vue 2与Vue 3的不同特性进行了详细对比与讲解。
「offer来了」从基础到进阶原理,从vue2到vue3,48个知识点保姆级带你巩固vuejs知识体系
|
4天前
|
API UED
如何实现Vue2项目升级Vue3?
如何实现Vue2项目升级Vue3?
11 1
|
4天前
|
JavaScript
vue 函数化组件
vue 函数化组件
|
4天前
|
API UED
升级 Vue3 后,项目的打包体积会有什么变化?
升级 Vue3 后,项目的打包体积会有什么变化?
9 0
|
5天前
|
JavaScript
vue组件中的插槽
本文介绍了Vue中组件的插槽使用,包括单个插槽和多个具名插槽的定义及在父组件中的使用方法,展示了如何通过插槽将父组件的内容插入到子组件的指定位置。
|
3天前
|
JavaScript
vue消息订阅与发布
vue消息订阅与发布
|
4天前
|
JavaScript 前端开发 IDE
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
|
4天前
|
JavaScript 前端开发 API
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
下一篇
无影云桌面