• vue计算属性computed && 侦听器watch


    一、计算属性

    1.vue中的计算属性:

    (1)提供了和data数据属性一样的属性,页面渲染调用数据时使用一样的语法规则(直接调用属性值,不需要再执行方法)

    1. //调用data变量
    2. <p>data-info:{{ info }}p>
    3. //调用computed变量
    4. <p>computed-msg:{{ msg }}p>
    5. createApp({
    6. data() {
    7. return {
    8. info: "data属性info",
    9. }
    10. },
    11. computed: {
    12. // key 属性名,value是执行方法,但必须存在return提供属性返回值
    13. msg: function () {
    14. return "计算属性msg"
    15. }
    16. }

    (2)但是又能兼顾vue方法属性中的逻辑操作(计算属性中的this指向vue的当前应用实例)

    2.计算属性的特性:

    (1)默认情况下计算属性构建的变量为只读变量,只能读取,不能修改;当通过页面来试图修改计算属性的变量值时,会打印 readonly 警告!

    (2)通过对象取值的配置,可以实现计算属性的双向操作功能(即页面修改能修改计算属性变量,计算属性变量渲染到页面)

    3.应该场景:

    (1)可以将页面的相关赋值逻辑操作定义在计算属性中,页面直接调用计算属性的返回值来达到控制逻辑的效果,简化页面模板语法的定义;

    (2)计算属性具有缓存特性,可以通过缓存规则,减少多次调用属性时的逻辑操作方法的调用的次数,提升运行性能;

           计算属性的缓存功能,在所依赖的变量没有发生变化时,计算属性不会触发重新计算,只有当计算属性所依赖的变量变化时,他才会再次触发计算属性;

    (3)通过计算属性的双向操作功能(对象形式取值,通过get(),set()方法),可以将页面具有双向功能,但是逻辑不同的操作模拟成普通属性的双向功能;

    1. username:{{ username }}

    2. //input框修可以通过set方法来修改username的值

    三、this.$watch

    通过vue提供的应用实例方法 $watch 完成变量监视器的定义;

    $watch定义的监视器会返回一个 关闭该监视器的回调方法;

    语法:

     vue实例.$watch(expOrFn, callback, [options])

                    + expOrFn : 接收被监控的变量的名称 或者 和监控变量有关的方法

                                    + 定义字符串表达式时,等效于对变量直接完成监控控制

                                     + 定义方法且方法返回值绑定了相关变量,等同于对绑定的所有变量统一完成监控

                    + callback : 变量发生变化时执行的回调函数

                    + options : 取值 Object ,用于定义除handler以外的其它监视配置(深度监控,初始调用……)

     问题引入:

    vue中如何同时对多个变量定义统一监控方法?

                    方式1:通过计算属性

                    方式2:通过$watch完成监控

    1. num1:{{ num1 }}

    2. num2:{{ num2 }}

    3. 求和:{{ num1+num2 }}

    4. 求和:{{ sum }}


    5. msg:{{ msg }}



    6. num3:{{ num3 }}

    7. num4:{{ num4 }}

    8. 求和:{{ num3+num4 }}

  • 相关阅读:
    Hadoop(3.3.1): Capacity Scheduler:通过设置资源队列来满足不同业务之间的资源隔离、队列的弹性以及队列权限
    135. 分发糖果
    YOLOv5算法改进(20)— 如何去写YOLOv5相关的论文(包括论文阅读+规律总结+写作方法)
    Scoped和样式穿透
    Python自学笔记6-列表有哪些常用操作
    多线程查询,效率翻倍
    信息学奥赛一本通:1397:简单算术表达式求值
    【c++面试题】02-STL概述
    个人C语言问题记录
    炫酷又高效的数据可视化大屏,做起来真的没那么难!丨极客星球
  • 原文地址:https://blog.csdn.net/weixin_67642008/article/details/126764106