Vue学习(四)——计算属性

计算属性是computed:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    </style>
</head>

<body>
    <div id="jdg">
        <!--
        <ul>
            <li v-for="it in S10" v-on:click="">{{it}}</li>
        </ul>
        -->
        <h1>{{fullName}}</h1>
        <p>{{GfullName()}}</p>
    </div>
    <script src="../vue.js"></script>
    <script>
        const app = new Vue({
            el: '#jdg',
            data: {
                S10: ['JDG', 'TES', 'SN', 'LGD'],
                beRed:[false,false,false,false],

                firstName:'涂',
                lastName:'博闻'

            },
            computed:{
                fullName:function(){
                    return this.firstName+this.lastName;
                }
            },
            methods: {
                GfullName:function(){
                    return this.firstName+this.lastName;
                }
            }
        })
    </script>
</body>

</html>

我们在需要将数据对象中数据运算之后显示的情况下,既可以使用methods来定义函数返回值,然后使用{{}}来解析运算函数,也可以定义computed计算属性,这样不用加括号,使程序更有可读性。

计算属性的setter和getter方法:

一般的计算属性都会有set和get方法,但是由于一般set方法不会被使用,所以像上面那样定义计算属性,在调用时就会直接调用属性的get方法。set方法一般是计算属性被修改之后会调用的方法,get方法是获取计算属性时调用的方法。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    </style>
</head>

<body>
    <div id="jdg">
        <!--
        <ul>
            <li v-for="it in S10" v-on:click="">{{it}}</li>
        </ul>
        -->
        <h1>{{fullName}}</h1>
        <p>{{GfullName()}}</p>
    </div>
    <script src="../vue.js"></script>
    <script>
        const app = new Vue({
            el: '#jdg',
            data: {
                S10: ['JDG', 'TES', 'SN', 'LGD'],
                beRed: [false, false, false, false],

                firstName: '涂',
                lastName: '博闻'

            },
            computed: {
                fullName: {
                    get: function () {
                        return this.firstName + this.lastName;
                    },
                    set: function (newValue) {
                        const name=newValue.split(' ');
                        this.firstName=name[0];
                        this.lastName=name[1];
                        alert("修改了名字");
                    }
                }
            },
            methods: {
                GfullName: function () {
                    return this.firstName + this.lastName;
                }
            }
        })
    </script>
</body>

计算属性和 methods方法的区别:

计算属性会被浏览器缓存起来,如果值没有改变就不会被调用函数,但是如果是methods方法来调用,无论值有没有改变,只要调用一次,函数就会被调用一次,程序运行速度会很慢。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值