iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue3 中 computed 新用法示例小结
  • 520
分享到

vue3 中 computed 新用法示例小结

2024-04-02 19:04:59 520人浏览 安东尼
摘要

vue3 中 的 computed 的使用,由于 Vue3 兼容 vue2 的选项式api,所以可以直接使用 vue2的写法,这篇文章主要介绍 vue3 中 computed 的新用

vue3 中 的 computed 的使用,由于 Vue3 兼容 vue2 的选项式api,所以可以直接使用 vue2的写法,这篇文章主要介绍 vue3 中 computed 的新用法,对比 vue2 中的写法,让您快速掌握 vue3 中 computed 的新用法。

组合式 API 中使用 computed 时,需要先引入:import { computed } from "vue"。引入之后 computed 可以传入的参数有两种:回调函数和 options 。具体看看它是如何使用的?

一、函数式写法

在vue2中,computed 写法:


computed:{
 sum(){
  return this.num1+ this.num2
 }
}

在vue3 如果使用选项式API也可以这样写,主要看下组合式API的使用。

示例1:求和


import { ref, computed } from "vue"
export default{
 setup(){
  const num1 = ref(1)
  const num2 = ref(1)
  let sum = computed(()=>{
   return num1.value + num2.value
  })
 }
}

调用 computed 时, 传入了一个箭头函数,返回值作为 sum 。相比之前,使用更加简单了。如果需要计算多个属性值,直接调用就可以。如:


let sum = computed(()=>{
 return num1.value + num2.value
 })
let mul = computed(()=>{
 return num1.value * num2.value
 })

该示例过于简单,看不明白的可在文章后面阅读完整实例1。

二、options 写法

计算属性默认只有 getter ,在需要的时候也可以提供 setter 。在vue2中用法如下:


computed:{
 mul:{
  get(){ // num1值改变时触发
   return this.num1 * 10
  },
  set(value){ // mul值被改变时触发
   this.num1 = value /10
  }
 }
}

mul 属性是 给num1 放大10,如果修改 mul 的值,则 num1 也随之改变。

在 vue3 中 :


let mul = computed({
 get:()=>{
  return num1.value *10
 },
 set:(value)=>{
  return num1.value = value/10
 }
})

这两种写法不太一样,仔细观察区别不大,get 和 set 调用也是一样的。

在此示例中代码简单,如果没太理解,可查看文章后面的完整实例2。

完整实例1:


<template>
 <div>
  {{num1}} + {{num2}} = {{sum}}
  <br>
  <button @click="num1++">num1自加</button>
  <button @click="num2++">num2自加</button>
 </div>
</template>
<script>
import { ref, computed } from "vue"
export default{
 setup(){
  const num1 = ref(1)
  const num2 = ref(1)
  let sum = computed(()=>{
   return num1.value + num2.value
  })
  return{
   num1,
   num2,
   sum
  }
 }
}
</script>

完整实例2:


<template>
 <div>
  {{num1}} + {{num2}} = {{sum}}<br>
  <button @click="num1++">num1自加</button>
  <button @click="num2++">num2自加</button>
  <br>
  {{num1}} * 10 = {{mul}}
  <button @click="mul=100">改值</button>
 </div>
</template>
<script>
import { ref, computed } from "vue"
export default{
 setup(){
  const num1 = ref(1)
  const num2 = ref(1)

  let sum = computed(()=>{
   return num1.value + num2.value
  })
  let mul = computed({
   get:()=>{
    return num1.value *10
   },
   set:(value)=>{
    return num1.value = value/10
   }
  })
  return{
   num1,
   num2,
   sum,
   mul
  }
 }
}
</script>

三、computed 传参

计算属性需要传入一个参数怎么写呢?


<template>
 <div>
  <div v-for="(item,index) in arr" :key="index" @click="sltEle(index)">
   {{item}}
  </div>
 </div>
</template>
<script>
import { ref, computed,Reactive } from "vue"
export default{
 setup(){
  const arr = reactive([
   '哈哈','嘿嘿'
  ])
  const sltEle = computed( (index)=>{
   console.log('index',index);  
  })
  return{
   arr,sltEle
  }
 }
}
</script>

直接这样写,运行的时候,出现错误:Uncaught TypeError: $setup.sltEle is not a function。

原因:

computed 计算属性并没有给定返回值,我们调用的是一个函数,而 computed 内部返回的并不是一个函数,所以就会报错:sltEle is not a function。

解决办法:

需要在计算属性 内部返回一个函数。修改代码如下:


const sltEle = computed( ()=>{
 return function(index){
  console.log('index',index);
 }
})

到此这篇关于vue3 中 computed 新用法的文章就介绍到这了,更多相关vue3 computed 用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue3 中 computed 新用法示例小结

本文链接: https://www.lsjlt.com/news/158362.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue3 中 computed 新用法示例小结
    vue3 中 的 computed 的使用,由于 vue3 兼容 vue2 的选项式API,所以可以直接使用 vue2的写法,这篇文章主要介绍 vue3 中 computed 的新用...
    99+
    2024-04-02
  • vue3 中computed 新用法的示例分析
    这篇文章给大家介绍vue3 中computed 新用法的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。vue3 中 的 computed 的使用,由于 vue3 兼容 vue2 的选项式AP...
    99+
    2023-06-21
  • Vue3中的 computed,watch,watchEffect的使用方法
    目录一、computed二、watchvu2 的写法Vue3 中这样写三、watchEffect一、computed <template> 姓:<input ...
    99+
    2024-04-02
  • vue3中hooks的概述及用法小结
    目录一、 什么是hooks二、hooks的用法大家好,今天这篇文章是介绍一下vue3中的hooks以及它的用法。本文内容主要有以下两点: 什么是hooksvue3中hooks的使用方...
    99+
    2023-03-07
    vue3中hooks使用 vue3 hooks
  • Vue3 中的模板语法小结
    目录前言一、什么是模板语法?二、内容渲染指令1. v-text2. {{ }} 插值表达式3. v-html三、双向绑定指令1. v-model2. v-model的修饰符四、属性绑...
    99+
    2023-03-06
    vue3模板语法 vue模板语法
  • Vue3 中 watch 与 watchEffect 区别及用法小结
    目录响应式依赖收集WatchWatchEffect什么时候用什么?大部分时候用 watch 显式的指定依赖以避免不必要的重复触发,也避免在后续代码修改或重构时不小心引入新的依赖。wa...
    99+
    2024-04-02
  • Vue3中teleport新特性的示例分析
    Vue3中teleport新特性的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Vue鼓励我们通过将UI和相关行为封装到组件中来构...
    99+
    2024-04-02
  • Vue3组件更新中的DOM diff算法示例详解
    目录同步头部节点同步尾部节点添加新的节点删除多余节点处理未知子序列移动子节点建立索引图更新和移除旧节点移动和挂载新节点最长递增子序列总结总结在vue的组件更新过程中,新子节点数组相对...
    99+
    2024-04-02
  • Vue3中的setup语法糖、computed函数、watch函数如何用
    computed函数computed 函数的使用:其实我们什么情况下会使用计算属性呢,那一定是通过依赖的数据得到新的数据!1)从Vue中引入computed 2)在setup中进行使用,将一个函数,函数的返回值就是计算好的数据 3)最后呢通...
    99+
    2023-05-17
    Vue3 setup computed
  • Vue3中的h函数及使用小结
    目录简介简单使用参数使用进阶使用函数组件插槽参考资料:专栏目录请点击 简介 众所周知,vue内部构建的其实是虚拟DOM,而虚拟DOM是由虚拟节点生成的,实质上虚拟节点也就是一个js对...
    99+
    2023-03-06
    Vue3 h函数 Vue3 h函数用法
  • vue2和vue3中provide/inject的基本用法示例
    目录前言vue2基本用法:1.provide2.inject如何成为响应式?1.方法一:函数方法2.方法二:传递thisvue3的基本用法:总结前言 昨天看一个项目代码看到了prov...
    99+
    2023-05-17
    vue中provideinject vue中provide的用法 vue中的inject
  • vue3中使用ref语法糖的示例代码
    自从引入组合式 API 的概念以来,一个主要的未解决的问题就是 ref 和响应式对象到底用哪个。响应式对象存在解构丢失响应性的问题,而 ref 需要到处使用 .value 则感觉很繁...
    99+
    2024-04-02
  • Vue3中10多种组件通讯方法小结
    目录Propsemitsexpose / refNon-Props单个根元素的情况多个元素的情况v-model单值的情况多个 v-model 绑定v-model 修饰符插槽 slot...
    99+
    2024-04-02
  • node.js使用Moment.jsjs时间计算方法示例小结
    概述 moment 是一个使用非常方便的 Node.js 模块,可以帮助我们处理和格式化日期和时间。这里就来总结一下moment的常见用法。 首先是安装: npm i moment ...
    99+
    2023-05-19
    node.js moment 时间计算
  • Vue3中Composition API的使用示例
    这篇文章主要介绍Vue3中Composition API的使用示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!vue3.0在7月发布了rc版本,vue-cli4.5后也支持选择vue3作为备选版本可以体验了,vue...
    99+
    2023-06-14
  • vue3 setup() 高级用法示例详解
    目录一、选项式API 和 组合式API 区别二、setup 具体怎么用?2.1、setup 什么时候执行?2.2、setup 数据和方法如何使用?2.3、setup 内部有 this...
    99+
    2024-04-02
  • vue3下watch的使用方法示例
    目录一,监听单个数据ref二,监听引用类型数据ref:深度监听1,引用类型ref直接深度监听2,引用类型ref深拷贝深度监听三,监听单个数据:reactive四,监听引用类型数据:r...
    99+
    2023-03-19
    vue3 watch使用 vue3 watch
  • Vue3中的setup语法糖、computed函数、watch函数怎么使用
    这篇文章主要介绍“Vue3中的setup语法糖、computed函数、watch函数怎么使用”,在日常操作中,相信很多人在Vue3中的setup语法糖、computed函数、watch函数怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简...
    99+
    2023-07-05
  • vue3中watch和watchEffect的新用法
    目录一、watch新用法1.1、watch使用语法1.2、watch监听多个属性值1.3、watch监听引用数据类型二、watchEffect三、watch与watchEffect区...
    99+
    2024-04-02
  • Python中input()函数的用法实例小结
    目录一:input()函数的输入机制二:input()函数常涉及的强制类型转换三:带提示的input()函数及其常见问题四:利用input()一次性输入多个变量值附:input()函...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作