广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue计算属性与监视属性实现方法详解
  • 424
分享到

Vue计算属性与监视属性实现方法详解

2024-04-02 19:04:59 424人浏览 独家记忆
摘要

目录一、计算属性1、插值语法实现2、通过方法实现3、通过计算属性二、监视属性三、深度监视一、计算属性 在开发中,可以有这样的需求,在属性(date)中,有fistName和lastN

一、计算属性

开发中,可以有这样的需求,在属性(date)中,有fistName和lastName两个属性,需要将两个属性拼接起来,这种需求也很简单,有以下实现方式

1、插值语法实现

直接在body中将两个数据拼接

    <div id="root">
        姓:<input type="text" v-model="fistName"><br><br>
        名:<input type="text" v-model="lastName"><br><br>
        姓名:<span>{{fistName + lastName}}</span>
    </div>

2、通过方法实现

编写一个方法,返回值为两者拼在一起的字符串

    <div id="root">
        姓:<input type="text" v-model="fistName"><br><br>
        名:<input type="text" v-model="lastName"><br><br>
        <!-- 只要数据发生改变,这个方法就会再被调用一次 -->
        姓名:<span>{{fullName()}}</span>
    </div>
    new Vue({
        el:'#root',
        data:{
            fistName:'张',
            lastName:'三'
        },
        methods: {
            fullName(){
                return this.fistName + this.lastName;
            }
        },
    })

3、通过计算属性

计算属性就是vue中的computed,这里面存放的是计算属性

而data中的是属性,两者不一样

    <div id="root">
        姓:<input type="text" v-model="fistName"><br><br>
        名:<input type="text" v-model="lastName"><br><br>
        姓名:<span>{{fullName}}</span>
    </div>
const vm = new Vue({
        el:'#root',
        //属性
        data:{
            fistName:'张',
            lastName:'三'
        },
        // 计算属性
        computed:{
            fullName:{
                //当有人读取fullName时,get就会被调用,返回值为fullName的值
                //get调用时机
                //1、初次读取fullName
                //2、所依赖的数据变化时
                get(){
                    //这里的this是指vm
                    return this.fistName + this.lastName;
                },
                //当fullName被调用时候调用
                set(value){
                    const arr = value.split('-')
                    this.fistName = arr[0]
                    this.lastName = arr[1]
                }
            }
        }
    })

计算属性和方法的编写方式有点区别

  • {{}}中方法是写一个方法的,即带括号
  • 但是计算属性只需要写名字即可,不用带花括号

计算属性中要编写两个方法,一个是get方法,另一个是set方法

  • 当有人读取fullname这个计算属性,get方法就会被调用,返回值是fullname的值
  • 当有人修改fullname这个计算属性,set方法就会被调用

当明确只有get方法,不需要set方法的时候,计算属性可以简写成如下:

            fullName(){
                return this.fistName + this.lastName;
            }

get函数什么时候执行:

  • 初次读取时会执行一次
  • 当依赖的数据发生变化时会被调用一次

计算属性的优势

相对于方法来说,计算属性内部有缓存机制(复用),效率更好,调试更方便

简单来说,倘若计算属性不变,计算属性的数据就会存进缓存中,当页面上的其他数据需要读取这个计算属性的话,不再需要从vm获取,直接从缓存里面获取

二、监视属性

监视属性可以监视某个属性的变化,并且可以获取变化前和变化后的数值

通过关键词watch实现

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta Http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <h2>今天天气很{{info}}</h2>
      <button @click="changgeWeather">切换天气</button>
    </div>
  </body>
  <script>
    Vue.config.productionTip = false;
    const vm = new Vue({
      el: "#root",
      data: {
        isHot: true,
      },
      computed: {
        info() {
          return this.isHot ? "炎热" : "凉爽";
        },
      },
      methods: {
        changgeWeather() {
          this.isHot = !this.isHot;
        },
      },
      // 监视
      //适用于一开始很明确地知道要监视谁
      watch: {
        isHot: {
          //初始化时让handler调用一下
          immediate: true,
          //什么时候调用?当isHost发生改变时
          handler(newValue, oldValue) {
            console.log("isHost被调用", newValue, oldValue);
          }
        },
      // }
    });
  </script>
</html>

例如如上案例,当isHost被修改的时候,监视属性中的isHost中的handler就会被调用

而 immediate: true 的作用是再初始化的时候调用一下这个监视属性

注意的是监视属性必须存在,才可以进行监视

除了以上邪恶写法,还可以通过vm.$watch监视

    vm.$watch("isHost", {
      //初始化时让handler调用一下
      immediate: true,
      //什么时候调用?当isHost发生改变时
      handler(newValue, oldValue) {
        console.log("isHost被调用", newValue, oldValue);
      },
    });

两种的使用场合不同:

  • 第一个则是,一开始就很明确这个属性需要监视,则写在vue里面
  • 第二个则是,一开始不知道这个属性需要被监视,然后后面加上的,就可以用vm.$watch

当监视属性只有handler的时候,可以进行简写

watch: {
        isHot((newValue, oldValue)): {
            console.log("isHost被调用", newValue, oldValue);
        }
}        

三、深度监视

深度监视主要用于监视层次比较高的

 data: {
        isHot: true,
        number: {
          a: 1,
          b: 1,
        },
      }

例如这个data里面的number,需要监视里面的a和b的变化,则需要用到监视属性

"number.a": {
            handler(newValue, oldValue) {
              console.log("a改变", newValue, oldValue);
            },
          },

监视对象里面的某个属性,就可以如上这也进行操作,“对象.属性”表示监视里面的某一个属性

同时也可以监视number的变化,只需要在在里面开启深度即可

        number:{
          //表示深度开启
          deep:true,
          handler(){
            console.log("number发生改变");
          }

监视对象里面的某个属性,就可以如上这也进行操作,“对象.属性”表示监视里面的某一个属性

同时也可以监视number的变化,只需要在在里面开启深度即可

        number:{
          //表示深度开启
          deep:true,
          handler(){
            console.log("number发生改变");
          }

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

--结束END--

本文标题: Vue计算属性与监视属性实现方法详解

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

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

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

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

下载Word文档
猜你喜欢
  • Vue计算属性与监视属性实现方法详解
    目录一、计算属性1、插值语法实现2、通过方法实现3、通过计算属性二、监视属性三、深度监视一、计算属性 在开发中,可以有这样的需求,在属性(date)中,有fistName和lastN...
    99+
    2022-11-13
  • Vue计算属性与监视属性详细分析使用
    目录计算属性(computed)监视属性(watch)监视的两种方法immediate选项深度监视计算属性(computed) 计算属性指的是通过一系列运算之后,最终得到一个值。这个...
    99+
    2022-11-13
    Vue计算属性与监视属性 Vue计算属性 Vue监视属性
  • Vue.js中的计算属性、监视属性与生命周期详解
    目录前言 计算属性 计算属性介绍 入门案例 统计价格案例getter和setter方法计算属性缓存监视属性 概述 代码总结Vue生命周期初始化阶段 更新阶段 死亡阶段 总结前言 本...
    99+
    2022-11-12
  • Vue中监视属性和计算属性区别解析
    目录计算属性需求使用watch实现准备工作测试测试在computed当中书写总结计算属性 顾名思义,计算属性就是计算出来的属性,英文名儿computed这里要和data和method...
    99+
    2022-11-13
    vue监视属性 vue计算属性
  • Vue中的计算属性与监听属性
    目录一、为什么要使用计算属性什么是计算属性二、计算属性和方法的区别1、区别2、计算属性使用场景三、修改计算属性的值总结四、监听属性1、监听普通属性2、监听属性和计算属性的区别3、监听...
    99+
    2022-11-13
  • JavaScript计算属性与监视属性怎么使用
    本篇内容主要讲解“JavaScript计算属性与监视属性怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript计算属性与监视属性怎么使用”吧!计算属性(computed)计算...
    99+
    2023-07-04
  • 关于Vue中的计算属性和监听属性详解
    目录一、computed计算属性(1)计算属性的缓存(2)计算属性的setter二、watch监听属性一、computed计算属性 Vue.js模板内的表达式非常便利,但是设计它们的...
    99+
    2023-05-20
    Vue 计算属性 Vue 监听属性
  • JavaScript计算属性与监视(侦听)属性的使用
    监视属性(watch)watch监视(侦听)器允许开发者监视数据的变化,从而针对数据的变化做特定的操作。监视的两种方法通过new Vue时传入watch配置:<div id="root"> <i...
    99+
    2023-05-14
    javascript
  • Vue计算属性与监视(侦听)属性的使用深度学习
    目录计算属性(computed)监视属性(watch)监视的两种方法immediate选项深度监视计算属性(computed) 计算属性指的是通过一系列运算之后,最终得到一个值。这个...
    99+
    2022-11-13
    vue计算属性和侦听属性 vue计算属性 vue监视属性
  • Vue中的计算属性与监听属性怎么用
    今天小编给大家分享一下Vue中的计算属性与监听属性怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、为什么要使用计算属...
    99+
    2023-06-29
  • Vue中监视属性和计算属性的区别是什么
    这篇文章主要讲解了“Vue中监视属性和计算属性的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue中监视属性和计算属性的区别是什么”吧!计算属性顾名思义,计算属性就是计算出来的属...
    99+
    2023-07-04
  • Vue之计算属性详解
    1、何为计算属性:大白话讲就是计算出来的结果保存在属性当中,可以想象为缓存。 <!DOCTYPE html> <html lang="en"> <h...
    99+
    2022-11-12
  • VUE 组件的计算属性详解
    目录前言计算属性总结前言 今天也是元气满满的一天,今天整理一下VUE组件的计算属性!~~开始我们的学习之旅 计算属性 先引用一张图 来看一下计算属性之间的关联: 注意: ...
    99+
    2022-11-13
  • vue如何实现计算属性
    本文小编为大家详细介绍“vue如何实现计算属性”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue如何实现计算属性”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是计算属性模板内的表达式非常便利,但是设计它们...
    99+
    2023-07-04
  • Vue3 计算属性的用法详解
    目录computed 计算属性说明计算属性使用总结注意上一篇博文说了 vue3 项目的 toRefs 函数和 toRef 函数,今天就稍微总结一下 vue3 的计算属性,其实学过 v...
    99+
    2022-11-13
  • vue怎么调用计算属性方法
    在Vue中,计算属性是一种特殊的属性,它可以根据已有属性的值计算出新的属性值。在开发中,我们通常会将一些需要计算的属性定义为计算属性,以便在模板中直接使用,避免了在JS代码中频繁地进行逻辑计算。但是,有时候我们在Vue组件中需要调用计算属性...
    99+
    2023-05-14
  • Vue监听属性图文实例详解
    目录 什么是监听属性?监听属性和计算属性的区别?监听属性的使用深度监听立即调用写在最后 什么是监听属性? 所谓监听就是对内置对象的状态或者属性变化进行监听并且做出反应的响应,监听属性...
    99+
    2022-11-12
  • Vue 监视属性之天气案例实现
    目录天气案例实现两个注意事项监视属性深度监视监视的简写形式天气案例实现 <div id="root"> <h2>今天天气很{{info}}</...
    99+
    2022-11-13
  • Vue计算属性实现成绩单
    本文实例为大家分享了Vue计算属性实现成绩单,供大家参考,具体内容如下 代码如下: <!DOCTYPE html> <html> <head>...
    99+
    2022-11-12
  • Vue中computed(计算属性)和watch(监听属性)的用法及区别说明
    目录计算属性computed侦听属性watch计算属性computed 支持缓存,只有依赖数据发生改变,才会重新进行计算 不支持异步,当computed内有异步操作时无效,无法监听数...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作