1. 程式人生 > >vue.js計算屬性(getter | setter)

vue.js計算屬性(getter | setter)

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <!-- Vue.js -->
    <script src="https://unpkg.com/vue/dist/vue.min.js"></script>
</head>
<body>
<div id="app">
    姓名: {{ fullName }}
</div>
</body>
</html>
<script>
    var app = new Vue({
        el:'#app',
        data:{
            firstName:'Jack',
            lastName:'Green'
        },
        //所有的計算屬性都以函式的形式寫在vue例項內的computed選項內,最終返回計算的結果
        //每一個計算屬性都包含一個getter和一個setter,我們的上個例項都是計算屬性的預設用法,只是利用了getter來獲取,在你需要時,也可以提供一個setter函式,當手動修改計算屬性的值就像修改一個普通資料那樣時,就會觸發setter函式,執行一些自定義操作
        computed:{
            fullName:{
                //getter,用於讀取
                get:function () {
                    return this.firstName + ' ' + this.lastName;
                },
                set:function (newValue) {
                    var names = newValue.split(' ');
                    this.firstName = names[0];
                    this.lastName = names[names.length - 1];
                }
                //絕大多數情況下,我們只會用預設的getter方法來讀取一個計算屬性,在業務中很少用到setter,所以在宣告一個計算屬性時,可以直接使用預設的寫法,不必將getter和setter都宣告
            }
        }
    })
</script>