广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue中监视属性和计算属性区别解析
  • 549
分享到

Vue中监视属性和计算属性区别解析

vue监视属性vue计算属性 2022-11-13 19:11:28 549人浏览 薄情痞子
摘要

目录计算属性需求使用watch实现准备工作测试测试在computed当中书写总结计算属性 顾名思义,计算属性就是计算出来的属性,英文名儿computed这里要和data和method

计算属性

顾名思义,计算属性就是计算出来的属性,英文名儿computed
这里要和data和methods里的东西区分,data里的属性,methods里的函数,你写的都会原封不动放到vm里,但是computed里面的东西写的是对象,最后放到vm里的是这个对象的名,值是get里的返回值。

下面看下Vue中监视属性和计算属性区别。

需求

我们将计算属性的案例使用watch写一遍

需求一揽

  • 两个输入框
  • 下方一个全名
  • 要求输入框内容发生变化的时候,全名也跟着变化

使用watch实现

自实现

  • 既然要使用深度监视,那么我们就需要在data当中准备一个对象属性
data:{
 // 全名
 fullname:{
    full:""
    name:""
},
userName:""
},

  • 我们的深度监视针对的就是这个fullName
  • 我们在data当中定义另一个变量userName,这个变量可以理解为计算属性,但是这里我们不使用computed配置项

准备工作

html

<!-- 创建一个容器 -->
    <fORM class="app">
        <input type="button" value="重置" @click="reset">
        <!-- 差值语法 == v-model -->
        <div class="box" >
            <div class="title">深度监视</div>
            请输入:<input type="text" v-model="fullName.full"><br>
            请输入:<input type="text" v-model="fullName.name">
            <!-- 使用深度监视 -->
            <div class="content">{{userName}}</div>
        </div>
    </form>

js

<script>
    var vm = new Vue({
      el: '.app',
      data: {
        // 全名
        fullName:{
            full:"",
            name:""
        },
        userName:""
      },
      methods:{
        // 清除fullName的值
        reset(){
            this.fullName.full = ""
            this.fullName.name = ""
        }
      },
      // 对fullName进行监视
      watch:{
        fullName:{
            deep:true,
            handler(){ 
                this.userName = this.fullName.full + "-" + this.fullName.name
            }
        }
      }
      
    });
</script>
  • 我们开启了深度监视,当fullName内部值发生改变
  • 那么handler就会被调用
  • 因为v-model与input当中的value进行了双向绑定
    • 所以当期发生变化的时候,data当中的full与name也会跟着变化
  • 我们在fullName的深度监视中能够同步获得data当中已经发生改变的full与name
  • 在handler当中将userName的值,对其进行加法运算
this.userName = this.fullName.full + "-" + this.fullName.name

  • 我感觉这样有点麻烦,看老师怎么做的吧

测试

新需求

  • 当 姓(full) 发生变化的时候,这个全名(userName),延迟一秒更新
  • 不过这样的话,那么就需要对full与name单独监视了
// 对fullName进行监视
      watch:{
        'fullName.full':{
            handler(newValue){
                // 新增一个定时器
                setTimeout(()=>{
                    this.userName = newValue + "-" + this.fullName.name
                },1000)
            }
        },
        'fullName.name':{
            handler(newValue){
                this.userName = this.fullName.full + "-" + newValue;
            }
        }
      }

注意点

  • setTimeout这个函数,是js模块当中定时器模块所管理的一个函数
  • 它的this是window
  • 我们这个需求当中,setTimeout是vue当中,一个监听属性的handler回调当中的内容
  • 那么这个时候如果不写成箭头函数,那么this的指向就是window
  • 但是写了箭头函数,那么setTimeout的this指向就没有了
  • 没有怎么办?往上一级找嘛,上一级是谁?handler嘛,handler的this是谁?vue嘛

测试

在computed当中书写

是不能够通过异步请求来去维护数据的

  • 这俩配置项各有千秋,但是我个人觉得watch来书写这个需求的时候,会比较麻烦
  • 关于计算属性
    • 在我确认自己不需要对fullName这个整体进行修改的时候,那么我只需要一行代码即可完成这个需求
//配置计算属性
computed:{
    //完整写法
    /* fullname:{...
    // 简写形式
    /*fullName:funaction(){...
    fullName(){
      return this.full + "-" + this.name
  }
}

  • 关于监视属性
    • 我得亲自去监视姓和名的变化,或者说进行深度监视
    • 然后在handler当中去修改
// 对fullName进行监视
watch:{
 fullName:{
     deep:true,
     handler(){
          this.userName = this.fullName.full + "-" +this.fullName.name
	  }
	 }
}

总结

computed与watch配置项

  • computed能完成的功能,watch都可以完成
  • watch能完成的功能,computed不一定能完成(参考异步)
  • 典中典
    • vue所管理的函数,最好写成普通函数,因为this的指向是vue或组件实例对象,别人帮我们指定好了
    • 所有不被vue所管理的函数(定时器回调,ajax回调),最好写成箭头函数
      • 这样this的指向才能是 vm 或者 组件实例对象,这样才能向上查找,向上兼容

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

--结束END--

本文标题: Vue中监视属性和计算属性区别解析

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

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

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

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

下载Word文档
猜你喜欢
  • Vue中监视属性和计算属性区别解析
    目录计算属性需求使用watch实现准备工作测试测试在computed当中书写总结计算属性 顾名思义,计算属性就是计算出来的属性,英文名儿computed这里要和data和method...
    99+
    2022-11-13
    vue监视属性 vue计算属性
  • Vue中监视属性和计算属性的区别是什么
    这篇文章主要讲解了“Vue中监视属性和计算属性的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue中监视属性和计算属性的区别是什么”吧!计算属性顾名思义,计算属性就是计算出来的属...
    99+
    2023-07-04
  • Vue监听属性和计算属性
    目录一、watch监听属性 1.购物车 2.全选与取消全选 二、计算属性 1.computed 2.methods 3.setter 一、watch监听属性 这个属性用来监视某个数...
    99+
    2022-11-12
  • Vue计算属性与监视属性详细分析使用
    目录计算属性(computed)监视属性(watch)监视的两种方法immediate选项深度监视计算属性(computed) 计算属性指的是通过一系列运算之后,最终得到一个值。这个...
    99+
    2022-11-13
    Vue计算属性与监视属性 Vue计算属性 Vue监视属性
  • Vue计算属性与监视属性实现方法详解
    目录一、计算属性1、插值语法实现2、通过方法实现3、通过计算属性二、监视属性三、深度监视一、计算属性 在开发中,可以有这样的需求,在属性(date)中,有fistName和lastN...
    99+
    2022-11-13
  • Vue中computed(计算属性)和watch(监听属性)的用法及区别说明
    目录计算属性computed侦听属性watch计算属性computed 支持缓存,只有依赖数据发生改变,才会重新进行计算 不支持异步,当computed内有异步操作时无效,无法监听数...
    99+
    2022-11-13
  • 关于Vue中的计算属性和监听属性详解
    目录一、computed计算属性(1)计算属性的缓存(2)计算属性的setter二、watch监听属性一、computed计算属性 Vue.js模板内的表达式非常便利,但是设计它们的...
    99+
    2023-05-20
    Vue 计算属性 Vue 监听属性
  • Vue中的计算属性与监听属性
    目录一、为什么要使用计算属性什么是计算属性二、计算属性和方法的区别1、区别2、计算属性使用场景三、修改计算属性的值总结四、监听属性1、监听普通属性2、监听属性和计算属性的区别3、监听...
    99+
    2022-11-13
  • Vue监听属性和计算属性怎么使用
    这篇文章主要讲解了“Vue监听属性和计算属性怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue监听属性和计算属性怎么使用”吧!一、watch监听属性这个属性用来监视某个数据的变化,...
    99+
    2023-06-25
  • Vue.js中的计算属性、监视属性与生命周期详解
    目录前言 计算属性 计算属性介绍 入门案例 统计价格案例getter和setter方法计算属性缓存监视属性 概述 代码总结Vue生命周期初始化阶段 更新阶段 死亡阶段 总结前言 本...
    99+
    2022-11-12
  • Vue组件的计算属性和普通属性的区别说明
    目录计算属性和普通属性的区别说明计算属性关键词: computedcomputed vs methods总结计算属性和普通属性的区别说明 计算属性关键词: computed 计算属性...
    99+
    2023-01-28
    Vue组件 Vue计算属性 Vue普通属性
  • Vue中的计算属性与监听属性怎么用
    今天小编给大家分享一下Vue中的计算属性与监听属性怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、为什么要使用计算属...
    99+
    2023-06-29
  • Vue计算属性与监视(侦听)属性的使用深度学习
    目录计算属性(computed)监视属性(watch)监视的两种方法immediate选项深度监视计算属性(computed) 计算属性指的是通过一系列运算之后,最终得到一个值。这个...
    99+
    2022-11-13
    vue计算属性和侦听属性 vue计算属性 vue监视属性
  • vue中计算属性和方法的区别及说明
    目录vue计算属性和方法区别区别vue向计算属性传递参数vue计算属性和方法区别 当我们实现翻转字符串的业务逻辑时,使用插值表达式打码如下: <div id="app">...
    99+
    2022-11-13
  • 简单聊聊Vue中的计算属性和属性侦听
    目录1. 计算属性语法:  1.简写方式:语法:  2.完整写法: 2. 监视(侦听)属性 1. 监视属性watch:2. 深度监视3. 区别和原则总结1. 计算...
    99+
    2022-11-12
  • Vue中computed属性和watch,methods的区别
    目录computedwatchmethods归纳三者不同点1、methods2、computed3、watch在Vue中,computed、watch和methods是处理响应式数据...
    99+
    2023-05-19
    Vue computed属性 watch methods
  • vue中计算属性computed理解说明包括vue侦听器,缓存与computed的区别
    一、计算属性(computed) 1、vue computed 说明 当一些数据需要根据其它数据变化时,需要进行处理才能去展示,虽然vue提供了绑定数据表达式绑定的方式,但是设计它的...
    99+
    2022-11-13
  • Vue计算属性、事件监听以及条件渲染实例分析
    本文小编为大家详细介绍“Vue计算属性、事件监听以及条件渲染实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue计算属性、事件监听以及条件渲染实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢...
    99+
    2022-10-19
  • 关于vue中计算属性computed的详细讲解
    目录1.定义2.用法3.computed的响应式依赖(缓存)4.应用场景附:计算属性的 getter 与 setter总结1.定义 computed是vue的计算属性,是根据依赖关系...
    99+
    2022-11-13
  • Vue中计算属性和侦听器怎么使用
    本篇内容主要讲解“Vue中计算属性和侦听器怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue中计算属性和侦听器怎么使用”吧!在Vue中通常我们会在模板绑定表达式,模板是用来描述视图结构...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作