首页 > 其他分享 >Vue — 计算属性(computed)详解

Vue — 计算属性(computed)详解

时间:2024-03-09 14:33:29浏览次数:16  
标签:Vue return computed item 详解 计算 属性

Vue.js 中的计算属性是基于它的响应式系统来实现的,它可以根据 Vue 实例的数据状态来动态计算出新的属性值。在 Vue 组件中,计算属性常用于对数据进行处理和转换,以及动态生成一些需要的数据。

一、使用方式

1.定义计算属性: 在Vue组件中,通过在 computed 对象中定义计算属性名称及对应的计算函数来创建计算属性。计算函数会返回计算属性的值。

2.在模板中使用计算属性: 在Vue的模板中,您可以直接像访问普通属性一样使用计算属性。Vue会自动处理计算属性的依赖关系,并在相关数据变化时更新计算属性。

<div id="app">
        <ul>

            <li v-for="(item,index) in list" :key="item.id">
                {{item.name}}有{{item.num}}个
            </li>
        </ul>
        总数 : {{conputedSum}}个
    </div>
    computed:{
            conputedSum(){
                let sum = this.list.reduce((sum,item)=>{
                    
                   return sum +item.num
                },0)

                return sum
            }
        }

3.计算属性的特点:

(1)计算属性是基于它们的依赖进行缓存的,只有在依赖发生变化时才会重新求值。

(2)计算属性的值会根据相关依赖的变化而自动更新,无需手动触发。

(3)计算属性的定义类似于普通的属性,但需要使用函数来返回计算结果。

二、computed与methods的区别

1.计算属性和方法的调用方式不同: 计算属性是通过对应名称直接访问的,而方法需要在模板中使用 v-on 指令或者 @ 符号进行调用。

2.计算属性可以缓存结果,而方法不能: 计算属性的值会被缓存起来,只有在它所依赖的响应式数据变化时才会重新计算。而方法每次调用都要重新计算,无法被缓存。

3.计算属性应该用于简单的计算,而方法用于复杂逻辑的处理: 如果需要对数据进行一些简单的计算或过滤,可以使用计算属性,因为它们比方法更高效。而如果需要进行一些复杂的逻辑处理,应该使用方法。

三、计算属性的完整写法

<div class="div">
            姓:<input type="text" v-model="surName">
                +
            名:<input type="text" v-model="nickName">
            =
            {{fullName}}
            <div>

                <button @click="changeName"> 改名卡</button>
            </div>
        </div>
//默认写法:只能读取 不能修改
            // fullName(){
            //         return this.surName+ this.nickName
            // }
            //完整写法 
            fullName:{
                //获取数据时,执行get
                get () {
                    return this.surName+ this.nickName
                } ,
                //修改数据时 执行set 修改的值 传给set的形参
                set(value){
                    console.log(value)
                    this.surName= value.slice(0,1)
                    this.nickName= value.slice(1)

                }
            }

 

标签:Vue,return,computed,item,详解,计算,属性
From: https://www.cnblogs.com/qinlinkun/p/18062675

相关文章

  • 好细的Vue安装与配置
    一、下载和安装Vue官网下载地址Download|Node.js 选择适合自己的版本,推荐LTS,长久稳定版本。 我这里选择的是WindowsInstaller(.msi)64-bit下载好后,双击下载的安装包。 点next  勾选Iaccept............,点next   这里建议更改为自己想要的的安装目录,......
  • 【vue3】学习对store中数据的使用
    src/store/modules/nav.jsimport{defineStore}from'pinia';import{handleTree}from'@/utils/ruoyi'import{list}from"@/api/nav/node";conststore=defineStore( 'nav', { state:()=>({ nodeList:[]......
  • 【前端Vue】社交信息头条项目完整笔记第1篇:一、项目初始化【附代码文档】
    社交媒体-信息头条项目完整开发笔记完整教程(附代码资料)主要内容讲述:一、项目初始化使用VueCLI创建项目,加入Git版本管理,调整初始目录结构,导入图标素材。二、登录注册准备,实现基本登录功能,登录状态提示,表单验证。三、个人中心,四、首页—文章列表TabBar处理,页面布局,处......
  • vue面试1
    生命周期函数(父子)顺序父beforeCreate =>.父created==>.父beforeMount==>子beforeCreate==> 子created==> 子beforeMount==> 子mounted==>父mounted更新顺序父beforeUpdate==>子beforeUpdate==>子updated==>父updated卸载顺序父beforeDestory/子before......
  • 软件设计原则 详解
    软件设计原则是指在软件开发过程中,为了保证软件系统的质量和可维护性,所制定的一系列指导性准则。这些原则旨在帮助开发人员编写出高质量、可扩展、易维护、可复用的软件代码。以下是一些常见的软件设计原则:单一职责原则(SingleResponsibilityPrinciple,SRP):一个类应该只有一个......
  • Vue3 组合函数拖拽
    代码exportfunctionuseDragMouse(dom,container){letcontainerX=0;letcontainerY=0;letstartX=0;letstartY=0;functiondragPage(e){container.value.style.left=e.pageX-startX+containerX+"px";container.valu......
  • 设备监察系统(Facilities Monitoring System)详解
    设备监察系统(FacilitiesMonitoringSystem,简称FMS)是一个综合性的设施管理系统,主要用于监控、管理和优化各种设备、系统和设施的性能。这个系统可以应用于各种行业,如建筑、制造业、能源、交通等,以实现对设备、系统和设施的全面监控和管理。以下是FMS设备监察系统的详细解释:系统......
  • 用Vue3.0 写过组件吗?如果想实现一个 Modal你会怎么设计?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助一、组件设计组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式现在有一个场景,点击新增与编辑都弹框出来进行填写,功能上大同小异,可能只是标题内容或者是显示的主体内容稍微不同这时候......
  • 详解 git stash
    gitstash详解gitstash命令及其参数功能。在Git中,stash是一种暂存工作区更改的方法,它允许您暂时保存未提交的更改,并将当前工作目录恢复到上次提交的状态。这对于需要切换分支处理其他问题、或者当前工作尚未完成但需要清理工作区以拉取或合并其他分支时非常有用。以下是......
  • vue常量定义以及使用
    在Vue项目中,您可以在JS文件中定义常量,然后通过 Vue.prototype 在 main.js 中定义这些常量为全局变量,以便在Vue组件中直接使用。以下是如何实现这一点的步骤:定义常量首先,创建一个JS文件来定义您的常量。例如,您可以创建一个名为 constants.js 的文件,并在其中定义......