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

摘要:
--let定义的变量可以修改。/const不能修改const定义的变量。它相当于常量--˃constapp=newVue计算属性的set方法不是一半写的。Get:也可以省略。默认的实现是get方法3。缓存计算属性和计算属性的函数之间的比较函数{{getAll()}}{getAll)}{getAll()}˂!

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方法

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

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>

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

  • 计算属性
<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>

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

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

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

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

免责声明:文章转载自《Vue:计算属性(使用、set和get方法、缓存)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Jenkins2 插件 Pipeline+BlueOcean 实现持续交付的初次演练高中信息技术(Python) 必修1 数据与计算 源代码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

(appium+python)UI自动化_02_appium启动手机app

前提:需先安装配置好appium+python自动化环境,已配置好环境的小伙伴可以参考以下步骤启动Android app,具体步骤如下: 一、USB连接手机 (1)手机USB连接电脑 (2)手机打开开发者模式、USB调试功能 二、基础信息配置 1,获取设备号 终端获取设备号,指令:adb devices   2,获取apk包名、activity (1)打开...

Vue项目上线后刷新报错404问题(apache,nginx,tomcat)

一、 Vue项目打包发布apache报错: route,配置一个覆盖所有的路由情况 1、需要修改router/index.js中new Router 配置,加一个base: '/htcm_front/', 它指定应用的基路径,该应用是服务于localhost/htcm_front路径下,所以必须加base配置,否则应用会展示404页面 2、需要修改conf...

POJ 3281 Dining (网络流之最大流)

题意:农夫为他的 N (1 ≤ N ≤ 100) 牛准备了 F (1 ≤ F ≤ 100)种食物和 D (1 ≤ D ≤ 100) 种饮料。每头牛都有各自喜欢的食物和饮料, 而每种食物或饮料只能分配给一头牛。最多能有多少头牛可以同时得到喜欢的食物和饮料? 析:是一个经典网络流的题,建立一个超级源点,连向每种食物,建立一个超级汇点,连向每种饮料,然后把每头牛...

vue的坑

1. (vue2.x以上,1.x没有问题)vue和jq一起使用的冲突:在使用了v-bind: class的元素上,当vue和jq都需要增改class时,用jq加的属性可能无效。 原因:当数据的布尔值改变后(比如某个class需要加上),由于vue是在本次事件轮结束后更新DOM或改变属性,而jq的addClass是同步的,所以jq加上的类名会被vue覆盖。...

vue使用typescript,三种组件传值方式

Vue 2.0 typescript写法传值方式: 随着 typescript 越来越受到前端框架的关注,最近使用 vue + typescript 做了一个项目。发现写法与 vue + js 完全不一样。但是原理相同。接下来给大家介绍 Vue 开发中常用的传值方式。 Vue 常用的三种传值方式有: 父传子 子传父 非父子传值 引用官网的一句话:...

Vue-Router基础知识点总结【vue系列】

Vue-Router 认识路由 1.什么是路由 2.后端路由阶段 3.前端路由阶段 前端路由的规则 1.URL的hash 2.HTML5的history模式 Vue-Router基础 1.认识vue-router 2.安装与使用vue-router 3.路由组件详解 路由配置其他补充 1.路由的默认路径 2.路径的History模式...