返回顶部
首页 > 资讯 > 前端开发 > JavaScript >关于vue中计算属性computed的详细讲解
  • 314
分享到

关于vue中计算属性computed的详细讲解

2024-04-02 19:04:59 314人浏览 薄情痞子
摘要

目录1.定义2.用法3.computed的响应式依赖(缓存)4.应用场景附:计算属性的 getter 与 setter总结1.定义 computed是Vue的计算属性,是根据依赖关系

1.定义

computed是Vue的计算属性,是根据依赖关系进行缓存的计算,只有在它的相关依赖发生改变时才会进行更新

2.用法

一般情况下,computed默认使用的是getter属性

3.computed的响应式依赖(缓存)

1. computed的每一个计算属性都会被缓存起来,只要计算属性所依赖的属性发生变化,计算属性就会重新执行,视图也会更新。下面代码中,计算属性fullName,它依赖了firstNamelastName这两个属性,只要它们其中一个属性变化,fullName就会重新执行。

2.computed计算属性会被缓存,在下面代码中使用了两次fullName,但在控制台只输出了一次 “这是fullName”。

<template>
  <div>
    <div>
      姓:<input type="text" v-model="firstName" />
    </div>
    <div>
      名:<input type="text" v-model="lastName" />
    </div>
    <!-- 调用两次fullName -->
    <div>姓名:{{ fullName }}</div>
    <div>姓名:{{ fullName }}</div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      firstName: "张",
      lastName: "三",
    };
  },
  computed: {
    fullName() {
        console.log("这是fullName");
        return this.firstName + this.lastName;
    }
  }
};
</script>

4.应用场景

当一个数据受多个数据影响时,可以使用computed

1.本组件计算

2.计算props的值

3.计算vuex的state或者getters值的变化

附:计算属性的 getter 与 setter

默认情况下,计算属性函数是一个 getter 函数,如果计算属性只有 get 需求,则可以简写

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./node_modules/vue/dist/vue.js"></script>
</head>

<body>
    <div id="app">
        <div>
            <!-- <input type="checkbox" v-model='isAll'> -->
            <input type="text" v-model='n'>
            +
            <input type="text" v-model='m'>
            =
            <input type="text" v-model='x'>
        </div>
        {{o}}
    </div>
    <script>
        let vm = new Vue({
            el: '#app',
            data: {
                is: true,
                obj: {
                    // a: 1
                    a: 1
                },
                n: '',
                m: ''
            },
            computed: {
                //计算属性在这里写的属性不要在data重复写 跟data中的数据一样可以通过vm.获取或者修改
                isAll: {
                    get() {
                        //只要获取这个属性就会触发get这个函数
                        console.log(1);
                        return this.is
                    },
                    set(val) {
                        // val 设置的值
                        this.isAll = this.is
                    }
                },
                x: {
                    // 只要是依赖的值(必须有setter和getter响应的数据)发生改变了就会重新计算自己的值
                    get() {
                        return Number(this.n) + Number(this.m)
                    },
                    // set(){
                    //     Number(this.n) + Number(this.m)
                    // }

                },
                o: {
                    get() {
                        //如果没有在data的obj中初始化 就没有getter和setter响应 当改变this.obj.a的时候不会影响 数据o
                        return this.obj.a + 1
                    }
                },
                ss: {
                    get() { },
                    //计算属性必须要有get可以没有set
                    //v-model绑定的计算属性有get和set
                    //其他的一般只有get
                    set() { }
                },
                xx() {
                    //如果这个计算属性只有get可以写成一个函数的形式
                },
                bb() {
                    //第一次获取的时候依赖值没有发生改变但是也会默认执行一次
                    // 必须要有return  不支持异步
                    let a = 'kk';
                    setTimeout(() => {
                        a = this.aa + a
                    }, 1000)
                    console.log(a);
                    
                    return this.aa
                }
            }
        })
    </script>
</body>

</html>

参考:https://cn.vuejs.org/v2/guide/computed.html

           Https://segmentfault.com/a/110000012948175

总结

到此这篇关于vue中计算属性computed的详细讲解的文章就介绍到这了,更多相关vue计算属性computed内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 关于vue中计算属性computed的详细讲解

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

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

猜你喜欢
  • 关于vue中计算属性computed的详细讲解
    目录1.定义2.用法3.computed的响应式依赖(缓存)4.应用场景附:计算属性的 getter 与 setter总结1.定义 computed是vue的计算属性,是根据依赖关系...
    99+
    2024-04-02
  • 关于Vue中的计算属性和监听属性详解
    目录一、computed计算属性(1)计算属性的缓存(2)计算属性的setter二、watch监听属性一、computed计算属性 Vue.js模板内的表达式非常便利,但是设计它们的...
    99+
    2023-05-20
    Vue 计算属性 Vue 监听属性
  • Vuecomputed计算属性详细讲解
    目录一、计算属性computed1.1.什么是计算属性computed1.2.复杂数据的处理-computed1.3.计算属性的缓存1.4.计算属性computed的setter和g...
    99+
    2024-04-02
  • 聊聊Vue中的计算属性computed
    一、计算属性computed1.1.什么是计算属性computed⭐⭐ computed 是基于它的依赖缓存,只有在它的相关依赖发生改变时才会进行更新。官方文档是这样说的:对于任何包含响应式数据的复杂逻辑,你都应该使用计算属性。 (学习视频...
    99+
    2022-11-22
    vue3 vue.js Vue
  • Vue中的computed属性详解
    目录插值表达式methodscomputed总结今天来说说vue中的计算属性computed,为了更好的理解计算属性的好处,我们先通过一个案例来慢慢 了解计算属性,有如下案例:定义两...
    99+
    2024-04-02
  • Vue的computed计算属性你了解吗
    目录computed计算属性1、什么是计算属性2、为什么要用计算属性3、compute、methods和watch三者的区别4、案例:遍历数组对象的时候进行监视总结computed计...
    99+
    2024-04-02
  • Vue中的计算属性computed怎么用
    今天小编给大家分享一下Vue中的计算属性computed怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、计算属性co...
    99+
    2023-07-04
  • Vue的computed计算属性怎么用
    这篇文章主要介绍“Vue的computed计算属性怎么用”,在日常操作中,相信很多人在Vue的computed计算属性怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue的computed计算属性怎么用...
    99+
    2023-06-29
  • vue中计算属性computed怎么使用
    这篇“vue中计算属性computed怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue中计算属性computed...
    99+
    2023-07-02
  • vue 过滤、模糊查询及计算属性 computed详解
    什么是计算属性 概念 计算属性是vue里面为了简化在模板语法中对响应式属性做计算而存在的 什么时候应该使用计算属性 根据现有响应式的值得到一个新的值 1、结构 <!-- * ...
    99+
    2022-11-13
    vue 过滤 模糊查询 vue计算属性
  • Vue之计算属性详解
    1、何为计算属性:大白话讲就是计算出来的结果保存在属性当中,可以想象为缓存。 <!DOCTYPE html> <html lang="en"> <h...
    99+
    2024-04-02
  • vue中计算属性computed理解说明包括vue侦听器,缓存与computed的区别
    一、计算属性(computed) 1、vue computed 说明 当一些数据需要根据其它数据变化时,需要进行处理才能去展示,虽然vue提供了绑定数据表达式绑定的方式,但是设计它的...
    99+
    2024-04-02
  • VUE 组件的计算属性详解
    目录前言计算属性总结前言 今天也是元气满满的一天,今天整理一下VUE组件的计算属性!~~开始我们的学习之旅 计算属性 先引用一张图 来看一下计算属性之间的关联: 注意: ...
    99+
    2024-04-02
  • Vue中computed计算属性和data数据获取方式
    目录computed计算属性和data数据获取解决方法一解决方法二computed计算属性取对象的值,第一次报错undefined报错和打印值解决方案computed计算属性和dat...
    99+
    2024-04-02
  • Vue中computed计算属性和data数据怎么获取
    这篇文章主要介绍“Vue中computed计算属性和data数据怎么获取”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue中computed计算属性和data数据怎么获取”文章能帮助大家解决问题。...
    99+
    2023-06-29
  • Python中关于面向对象私有属性方法的详细讲解
    目录1.私有属性和私有方法私有属性:私有方法:类部调用私有属性和私有方法子类不能继承父类私有属性和方法实例属性(对象属性)通过实例(对象)去修改类属性2.修改私有属性的值3.类属性和...
    99+
    2024-04-02
  • Vue中computed(计算属性)和watch(监听属性)的用法及区别说明
    目录计算属性computed侦听属性watch计算属性computed 支持缓存,只有依赖数据发生改变,才会重新进行计算 不支持异步,当computed内有异步操作时无效,无法监听数...
    99+
    2024-04-02
  • Vue计算属性与监视属性详细分析使用
    目录计算属性(computed)监视属性(watch)监视的两种方法immediate选项深度监视计算属性(computed) 计算属性指的是通过一系列运算之后,最终得到一个值。这个...
    99+
    2022-11-13
    Vue计算属性与监视属性 Vue计算属性 Vue监视属性
  • Vue基础语法之计算属性(computed)、侦听器(watch)、过滤器(filters)详解
    目录1、Vue 实例选项2、计算属性(computed)2.1、computed 的基本用法2.2、computed 作为函数传参2.3、计算属性和函数的区别3、侦听器(watch)...
    99+
    2022-11-13
    vue计算属性侦听器 vue计算属性侦听器 vue过滤器
  • css3的transition属性的详细讲解
    本篇内容主要讲解“css3的transition属性的详细讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css3的transition属性的详细讲解”吧!t...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作