• Vue:计算属性(使用、set和get方法、缓存)


    1、计算属性的使用

    (1)计算属性的基本运用

    <body>
    <div id="app">
      {{message1}}{{message2}}<br>
      {{message1 + ' '+message2}}<br>
      {{getAll()}}<br>
      {{all}}
    </div>
    <script src="../js/vue.js"></script>
    <script>
        <!--let定义的变量可以修改值/const定义的不可修改相当于常量-->
        const app=new Vue({
            el:"#app",//用于挂载要管理的元素
            data:{//定义数据
                message1:"hello Vue",
                message2:"zhai"
            },
            methods :{
                getAll(){
                    return this.message1+this.message2
                }
            },
            computed:{
                all:function(){
                    return this.message1+this.message2
                }
            }
        })
    </script>
    </body>

    要想实现字符串的拼接,可以去除两个属性的值后进行拼接,也可以封装为函数,最后一种是通过计算属性的方式实现的

    (2)案例(计算商品的总价格)

    • 不使用计算属性,只能一个个取值然后相加
    <div id="app">
        <h2>{{foods[0].price+foods[1].price+foods[2].price+foods[3].price}}</h2>
    </div>
    <script src="../js/vue.js"></script>
    <script>
        <!--let定义的变量可以修改值/const定义的不可修改相当于常量-->
        const app=new Vue({
            el:"#app",
            data:{
              foods:[
                  {id:1,price:33},
                  {id:2,price:3},
                  {id:3,price:23},
                  {id:4,price:43}
              ]
            }
        })
    </script>

    2、计算属性的set和get方法

    (1)set和get方法

    <body>
    <div id="app">
      {{all}}
    </div>
    <script src="../js/vue.js"></script>
    <script>
        <!--let定义的变量可以修改值/const定义的不可修改相当于常量-->
        const app=new Vue({
            el:"#app",//用于挂载要管理的元素
            data:{//定义数据
                message1:"hello Vue",
                message2:"zhai"
            },
            computed:{
                all:{
                    set:function(){
                        console.log("hello")
                    },
                    get:function(){
                        return this.message1+this.message2
                    }
                }
            }
        })
    </script>
    </body>

    计算属性的set方法一半时不写的,get:也可以省略,默认执行的是get方法

    3、计算属性的缓存

    (1)计算属性与函数的对比

    • 函数
    <div id="app">
      {{getAll()}}<br>
      {{getAll()}}<br>
      {{getAll()}}<br>
      {{getAll()}}<br>
    </div>
    <script src="../js/vue.js"></script>
    <script>
        <!--let定义的变量可以修改值/const定义的不可修改相当于常量-->
        const app=new Vue({
            el:"#app",//用于挂载要管理的元素
            data:{//定义数据
                message1:"hello Vue",
                message2:"zhai"
            },
            methods :{
                getAll(){
                    console.log("a")
                    return this.message1+this.message2
                }
            }
        })
    </script>
    </body>

    • 计算属性
    <body>
    <div id="app">
      {{all}}<br>
      {{all}}<br>
      {{all}}<br>
      {{all}}<br>
    </div>
    <script src="../js/vue.js"></script>
    <script>
        <!--let定义的变量可以修改值/const定义的不可修改相当于常量-->
        const app=new Vue({
            el:"#app",//用于挂载要管理的元素
            data:{//定义数据
                message1:"hello Vue",
                message2:"zhai"
            },
            computed:{
                all:function(){
                    console.log("-----")
                    return this.message1+this.message2
                }
            }
        })
    </script>
    </body>

    对于计算属性的方式,在内容没有变化的时候就会直接返回结果,而不是重新执行一次。 

     上面重新设置message1的值之后,会重新执行一次计算属性。

  • 相关阅读:
    DOS 错误代码
    WINRAR 建立批处理备份文件
    clear.bat
    continue break
    播放dll中的wav声音
    BAT删除自身del 0
    bat 延时10秒自动关闭自己bat
    产生随机数
    RemoveDirZ.bat
    DELPHI中取整数的方法
  • 原文地址:https://www.cnblogs.com/zhai1997/p/14128492.html
Copyright © 2020-2023  润新知