我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript计算属性与监视属性怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript计算属性与监视属性怎么使用

本篇内容主要讲解“JavaScript计算属性与监视属性怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript计算属性与监视属性怎么使用”吧!

计算属性(computed)

计算属性指的是通过一系列运算之后,最终得到一个值。这个动态计算出来的属性值可以被模板结构或methods方法使用,案例如下:

<div id="root">    R:<input type="text" v-model.number="r"><br>    G:<input type="text" v-model.number="g"><br>    B:<input type="text" v-model.number="b">    <div class="box" :style="{backgroundColor:rgb}">        {{rgb}}    </div>    <button @click="show">按钮</button></div><script class="lazy" data-src="/vue/vue.js"></script><script>    const vm = new Vue({        el:'#root',        data:{            r:0 , g:0, b:0,        },        methods: {            show() {                console.log(this.rgb);            }        },        //所有计算属性都要定义到computed节点之下        computed: {            // 计算属性在定义的时候,要定义成“方法格式”,在这个方法中会生成好的rgb(x,x,x)的字符串            //实现了代码的复用,只要计算属性中依赖的数据变化了,则计算属性会自动重新赋值            rgb() {                return `rgb(${this.r},${this.g},${this.b})`            }        }    })</script>

JavaScript计算属性与监视属性怎么使用

使用名字动态改变实现计算属性案例:

<div id="root">    <input type="text" v-model="firstname"><br>    <input type="text" v-model="lastname"><br>    全名:<span>{{fullname}}</span></div><script class="lazy" data-src="/vue/vue.js"></script><script>    const vm = new Vue({        el:"#root",        data:{            firstname:'张',            lastname:'三'        },        computed:{            fullname:{                //当初次读取fullname或所依赖的数据发生变化时,get被调用                get(){                    console.log('get被调用了');                    return this.firstname+'-'+this.lastname                },                //当主动修改fullname时,set被调用                set(value){                    console.log('set', value);                    const arr = value.split('-');                    this.firstname = arr[0]                    this.lastname = arr[1]                }            }        }    })</script>

JavaScript计算属性与监视属性怎么使用

计算属性

定义:要用的属性不存在,要通过已有的属性得来

原理:底层借助了Object.defineproperty方法提供的getter和setter

优势:与methods实现相比,内部有缓存机制(复用),效率更高,调试方便

备注:计算属性最终会出现在vm上,直接读取使用即可;如果计算属性要被修改,那必须写set函数去响应改变,且set中要引起计算时依赖的数据发生改变。

监视属性(watch)

watch监视(侦听)器允许开发者监视数据的变化,从而针对数据的变化做特定的操作。

监视的两种方法

通过new Vue时传入watch配置:

<div id="root">    <input type="text" v-model="name"></div><script class="lazy" data-src="./vue.js"></script><script>    const vm = new Vue({        el:'#root',        data:{            name:''        },        //所有的侦听器,都应该被定义到watch节点下        watch:{            // 侦听器本质上是一个函数,要监视哪个数据的变化,就把数据名作为方法名即可            //newVal是“变化后的新值”,oldVal是“变化之前旧值”            name(newVal,oldVal){ //监听name值的变化                console.log("监听到了新值"+newVal, "监听到了旧值"+oldVal);            }        }    })</script>

JavaScript计算属性与监视属性怎么使用

通过vm.$watch监视:

<div id="root">    <h3>今天天气很{{info}}</h3>    <button @click="changeWeather">切换天气</button></div><script class="lazy" data-src="./vue.js"></script><script>    const vm = new Vue({        el:'#root',        data:{            isHot:true        },        computed:{            info(){                return this.isHot ? '炎热' : '凉爽'            }        },        methods:{            changeWeather(){                this.isHot = !this.isHot            }        },    })    vm.$watch('info',{        handler(newVal,oldVal){            console.log('天气被修改了', newVal, oldVal);        }    })</script>

JavaScript计算属性与监视属性怎么使用

immediate选项

默认情况下,组件在初次加载完毕后不会调用watch侦听器,如果想让watch侦听器立即被调用,则需要使用immediate选项,immediate的作用是控制侦听器是否自动触发一次,选项的默认值为:false

<div id="root">    <input type="text" v-model="name"></div><script class="lazy" data-src="./vue.js"></script><script>    const vm = new Vue({        el:'#root',        data:{            name:'admin'        },        watch:{            //定义对象格式的侦听器            name:{                handler(newVal,oldVal){                    console.log(newVal, oldVal);                },                immediate:true            }        }    })</script>

JavaScript计算属性与监视属性怎么使用

深度监视

如果watch侦听的是一个对象,如果对象中的属性值发生了变化,则无法被监听到。此时需要使用deep选项,开启深度监听,只要对象中任何一个属性变化了,都会触发“对象的侦听器”。

<div id="root">    <input type="text" v-model="info.name"></div><script class="lazy" data-src="./vue.js"></script><script>    const vm = new Vue({        el:'#root',        data:{            info:{                name:'admin'            }        },        watch:{            info: {                handler(newVal){                    console.log(newVal);                },                //开启深度监听                deep:true            }        }    })</script>

JavaScript计算属性与监视属性怎么使用

如果想要侦听的对象是子属性的变化,则必须包裹一层单引号。

watch:{    "info.name"(newVal){        console.log(newVal);    }}

JavaScript计算属性与监视属性怎么使用

总结

1)Vue中的watch默认不监测对象内部值的改变(一层)

2)配置deep:true可以监测对象内部值改变(多层)

3)Vue自身可以监测对象内部值的改变,但Vue提供的watch默认不可以

4)使用watch时根据数据的具体结构,决定是否采用深度监视

watch能开启异步任务,案例如下:

<div id="root">    <input type="text" v-model="firstname"><br>    <input type="text" v-model="lastname"><br>    全名:<span>{{fullname}}</span></div><script class="lazy" data-src="/vue/vue.js"></script><script>    const vm = new Vue({        el:"#root",        data:{            firstname:'张',            lastname:'三',            fullname:'张-三'        },        //watch能开启异步任务        watch:{            firstname(val){                setTimeout(()=>{                    this.fullname = val + '-' + this.lastname                },1000)            },            lastname(val){                this.fullname = this.firstname+'-'+val            }        }    })</script>

JavaScript计算属性与监视属性怎么使用

computed和watch之间的区别

computed能完成的功能,watch都可以完成。

watch能完成的功能,computed不一定能完成,例如:watch可以进行异步操作。

隐性原则

被Vue管理的函数,最好写成普通函数,这样this的指向才是vm或组件实例对象

不被Vue所管理的函数(定时器的回调函数、ajax的回调函数、Promise的回调函数),最好写成箭头函数,这样this的指向才是vm或组件实例对象。

到此,相信大家对“JavaScript计算属性与监视属性怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript计算属性与监视属性怎么使用

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

下载Word文档

猜你喜欢

JavaScript计算属性与监视属性怎么使用

本篇内容主要讲解“JavaScript计算属性与监视属性怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript计算属性与监视属性怎么使用”吧!计算属性(computed)计算
2023-07-04

JavaScript计算属性与监视(侦听)属性的使用

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了计算属性与监视属性使用的相关内容,计算属性指的是通过一系列运算之后,最终得到的一个值,监视器允许开发者监视数据的变化,从而针对数据的变化做特定的操作;下面一起来看一下,希望对大家有帮助。
2023-05-14

Vue计算属性与监视属性详细分析使用

computed是vue的配置选项,它的值是一个对象,其中可定义多个计算属性,每个计算属性就是一个函数,下面这篇文章主要给大家介绍了关于vue中计算属性computed的详细讲解,需要的朋友可以参考下
2022-11-13

Vue监听属性和计算属性怎么使用

这篇文章主要讲解了“Vue监听属性和计算属性怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue监听属性和计算属性怎么使用”吧!一、watch监听属性这个属性用来监视某个数据的变化,
2023-06-25

Vue中的计算属性与监听属性怎么用

今天小编给大家分享一下Vue中的计算属性与监听属性怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、为什么要使用计算属
2023-06-29

Vue计算属性与监视(侦听)属性的使用深度学习

这篇文章主要介绍了Vue计算属性与监视(侦听)属性的使用,计算属性指的是通过一系列运算之后,最终得到一个值,watch监视(侦听)器允许开发者监视数据的变化,从而针对数据的变化做特定的操作,本文就这两种属性给大家详细讲解,感兴趣的朋友一起学习吧
2022-11-13

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

这篇文章主要介绍了Vue中监视属性和计算属性区别,通过本文学习大家知道computed与watch配置项问题,computed能完成的功能,watch都可以完成,本文通过实例代码给大家详细讲解,需要的朋友可以参考下
2022-11-13

Vue中监视属性和计算属性的区别是什么

这篇文章主要讲解了“Vue中监视属性和计算属性的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue中监视属性和计算属性的区别是什么”吧!计算属性顾名思义,计算属性就是计算出来的属
2023-07-04

Vue中怎么使用计算属性

这期内容当中小编将会给大家带来有关Vue中怎么使用计算属性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。下面带大家了解一下Vue计算属性,介绍一下Vue计算属性的基础用法。计算属性有些时候,我们在模板中放
2023-06-21

vue中计算属性computed怎么使用

这篇“vue中计算属性computed怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue中计算属性computed
2023-07-02

vue怎么使用watch监听属性

这篇文章主要介绍了vue怎么使用watch监听属性的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue怎么使用watch监听属性文章都会有所收获,下面我们一起来看看吧。基本用法Vue watch最重要的使用场景
2023-06-30

Vue的computed计算属性怎么用

这篇文章主要介绍“Vue的computed计算属性怎么用”,在日常操作中,相信很多人在Vue的computed计算属性怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue的computed计算属性怎么用
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录