0
点赞
收藏
分享

微信扫一扫

Vue -- 计算属性

SPEIKE 2022-02-19 阅读 87

Vue – 计算属性

小结

计算属性:
   1、定义:要用的属性不存在,要通过已有属性计算得来
   2、原理:底层借助了 Object.defineproperty 方法提供的 getter 和 setter
   3、get 函数什么时候执行?
      1)初次读取时会执行一次
      2)当依赖的数据发生改变时会被再次调用
   4、优势:与methods实现相比,内部有缓存机制(复用),效率更高,调试方便
   5、备注:
      1)计算属性最终会出现在 vm上,直接读取使用即可
      2)如果计算属性要被修改,那必须写 set 函数去响应修改,且 set 中要引起计算时依赖的数据发生改变

代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <title>姓名案例_计算属性实现</title>
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <div id="root">
            姓:<input type="text" v-model:value="firstName"><br/><br/>
            名:<input type="text" v-model:value="lastName"><br/><br/>
            姓名:<span>{{fullName}}</span>
        </div>
    </body>

    <script type="text/javascript">
        Vue.config.productionTip = false

        const vm = new Vue({
            el:'#root',
            data:{
                firstName:'张',
                lastName:'三',
            },
            computed: {
                fullName:{
                    //get有什么作用?当有人读取fullName时,get就会被调用,且返回值就作为fullName的值
                    //get什么时候调用?1、初次读取fullName时;2、所依赖的数据发生变化时
                    get(){
                        return this.firstName + '-' +this.lastName
                    },
                    //set什么时候调用?当fullName被修改时
                    set(value){
                        const arr = value.split('-')
                        this.firstName = arr[0]
                        this.lastName = arr[1]
                    }
                },
                //简写(对于计算属性本身只读不写,才可以用简写)
                /*fullName(){
                    return this.firstName + '-' +this.lastName
                }*/
            }
        })
    </script>
</html>

运行效果

在这里插入图片描述

举报

相关推荐

【vue】计算属性

Vue计算属性

Vue的计算属性

【vue】computed计算属性

vue系列=计算属性

Vue计算属性详解

0 条评论