当前位置: 首页 > news >正文

VUE的计算属性

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8" />

    <title>计算属性</title>

</head>

<style>

    table {

      border: 1px solid #000;

      text-align: center;

      width: 240px;

    }

    th,td {

      border: 1px solid #000;

    }

    h3 {

      position: relative;

    }

  </style>

<body>

    <!-- 计算属性

    概念:基于现有的数据,计算出来的新属性。依赖的数据变化,自动重新计算。

    语法:

    1.声明在computed配置项中,一个计算属性对应一个函数。

    2.使用起来和普通属性一样使用{{计算属性名}}

    computed 计算属性 和 methods方法区别

   

    computed计算属性:

    作用:封装了一段对于数据的处理,求得一个结果

    语法:写在computed配置项中,作为属性直接使用,this.计算属性{{计算属性}}

    重点:

    缓存特性(提升性能):计算属性会对计算出来的结果缓存,再次使用直接读取缓存,依赖项变化了,会重新计算并再次缓存

    计算属性的完整写法

    计算属性默认的简写,只能读取访问,不能'修改',如果要'修改',需要写计算属性的完整写法

   

    默认写法:

    computed:{

        计算属性名(){

            一段代码逻辑(计算逻辑)

            return 结果

        }

    }

    完整写法:获取+设置

    computed:{

        计算属性名:{

            get(){

                一段代码逻辑(计算逻辑)

                return 结果

            },

            //当计算属性名被修改赋值时,会执行set

            set(修改的值){

                一段代码逻辑(修改逻辑)

            }

        }

    }

   

    methods方法:

    作用:给实例提供一个方法,调用以处理业务逻辑

    语法:写在methods配置项中,作为方法,需要调用,this.方法名(){{ 方法名()}} @事件名='方法名'

    -->

    <div id="app">

        <table>

            <tr>

            <th>名字</th>

            <th>数量</th>

            </tr>

            <tr v-for="(item,index) in list" :key='item.id'>

                <td>{{item.name}}</td>

                <td>{{item.num}}</td>

            </tr>

        </table>

        <p>礼物总数:{{ totalCount }} 个</p>

    </div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>

<script>

    const app = new Vue({

        el:'#app',

        data:{

            list:[

                {id:1,name:'篮球',num:'1'},

                {id:2,name:'足球',num:'3'},

                {id:3,name:'网球',num:'5'},

            ]

        },

        computed:{

            // 计算属性有缓存的,一旦计算出来结果,就会立即缓存

            // 下一次读取,直接读缓存就行,性能高

            totalCount(){

                // 基于现有的数据,编写求值逻辑

                // 计算属性函数内部,可以直接通过 this 访问到app实例

                // 需求:对 this.list 数组里面的 num进行求和,用reduce

                // 0是一个起始值,起始时 0是sum item.num是1,然后依次把数组里面的累加

                let total = this.list.reduce((sum,item) => sum + item.num,0)

                return total

                // let是块作用域,在函数中声明了var,整个函数内都是有效的,比如说在for循环内定义的一个var变量,实际上其在for循环以外也是可以访问的

                // 而let由于是块作用域,所以如果在块作用域内定义的变量,比如说在for循环内,在其外面是不可被访问的

            }

        }

    })

</script>

</body>

</html>

http://www.lryc.cn/news/248678.html

相关文章:

  • uniapp中使用pageScrollTo让页面滚动到固定节点或距离
  • 使用机器学习方法进行分析和处理:对高质量图像进行压缩
  • 多线程面试总结
  • android11-隐藏状态栏和导航栏
  • 血的教训--kail系统免密centos7的坑【高版本ssh免密低版本ssh的坑】
  • javaagent字节码增强浅尝
  • 计算机组成原理-Cache替换算法
  • Adobe 家族系列download
  • 97.STL-查找算法 find
  • 如何应对雨天飞行的挑战?无人机机库防护能力解析
  • 机器学习笔记 - 3D数据的常见表示方式
  • 【Node.js】解决npm报错:RequestError: unable to verify the first certificate
  • 语言模型文本处理基石:Tokenizer简明概述
  • 淘宝商品详情数据接口(店铺搬家、数据分析、代购商城、ERP选品、无货源铺货、品牌监控)
  • 面试篇之微服务(一)
  • 智慧科研助力科研数据的分析处理
  • el-select实现分屏效果
  • 微信小程序本地和真机调试文件上传成功但体验版不成功
  • windows系统用nginx部署web应用
  • 如何利用Python进行数据归一化?
  • Linux 基本语句_13_消息队列
  • Maven——仓库
  • Pandas:一个实用高效的Python数据处理库
  • Spring第三课,Lombok工具包下载,对应图书管理系统列表和登录界面的后端代码,分层思想
  • DDoS高防IP到底是什么?
  • el-row错位问题解决
  • torch indices x[indices] 内存不足崩溃,python进程锁报错。
  • 第二证券:机构争分夺秒抢滩 金融大模型落地为时尚早
  • C#WPF使用MaterialDesign 显示带遮罩的对话框
  • Nuxt.js:下一代Web开发框架的革命性力量