计算属性(get和set)

Posted wszzj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算属性(get和set)相关的知识,希望对你有一定的参考价值。

 

computed:(计算属性)

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 
 4 <head>
 5     <meta charset="UTF-8">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 8     <title>Document</title>
 9 </head>
10 
11 <body>
12 
13     <div id="app">
14         <h1>{{firstName}}</h1>
15         <h1>{{lastName}}</h1>
16         <h1>{{fullName}}</h1>
17         <h1>{{ageGroup}}</h1>
18         <button type="button" @click="changeName">将 fullName 的修改成 ‘朱帅旗 . 克里斯蒂安‘</button>
19     </div>
20 
21     <script src="./vue.js"></script>
22     <script>
23 
24         new Vue({
25             data: {
26                 firstName: 赵胤祯,
27                 lastName: 尼古拉斯,
28                 age: 60
29             },
30             methods: {
31                 changeName: function () {
32                     this.fullName = 朱帅旗 . 克里斯蒂安
33                 }
34             },
35             computed: {
36                 // 计算属性的完整用法
37                 fullName: {
38                     get: function () {
39                         return this.firstName +  .  + this.lastName
40                     },
41                     set: function (newFullName) {
42                         newFullName = newFullName.split( . )  // [‘朱帅旗‘, ‘克里斯蒂安‘]
43                         this.firstName = newFullName[0]
44                         this.lastName = newFullName[1]
45                     }
46                 },
47                 // 只需要 get 方法用法
48                 /* 
49                 一般来说:0(初生)-6岁为婴幼儿;7-12岁为少儿;13-17岁为青少年;
50                 18-45岁为青年;46-69岁为中年;>69岁为老年。性质为分段。
51                 */
52                 // ageGroup: {
53                 //     get: function () {
54                 //         if (this.age > 69) {
55                 //             return ‘老年‘
56                 //         } else if (this.age >= 46) {
57                 //             return ‘中年‘
58                 //         } else if (this.age >= 18) {
59                 //             return ‘青年‘
60                 //         } else if (this.age >= 13) {
61                 //             return ‘青少年‘
62                 //         } else if (this.age >= 7) {
63                 //             return ‘少儿‘
64                 //         } else if (this.age >= 0) {
65                 //             return ‘婴幼儿‘
66                 //         }
67                 //     }
68                 // },
69                 // 如果计算属性不需要 set 方法,则可以简写成如下形式:
70                 ageGroup: function () {
71                     if (this.age > 69) {
72                         return 老年
73                     } else if (this.age >= 46) {
74                         return 中年
75                     } else if (this.age >= 18) {
76                         return 青年
77                     } else if (this.age >= 13) {
78                         return 青少年
79                     } else if (this.age >= 7) {
80                         return 少儿
81                     } else if (this.age >= 0) {
82                         return 婴幼儿
83                     }
84                 }
85             }
86         }).$mount(#app)
87 
88     </script>
89 </body>
90 
91 </html>

get:是获取

set:是重新设置

一般只用get的时候,可以省略set

  • 同时用set和get
 computed: {
                // 计算属性的完整用法
                fullName: {
                    get: function () {
                        return this.firstName + ‘ . ‘ + this.lastName
                    },
                    set: function (newFullName) {
                        newFullName = newFullName.split(‘ . ‘)  // [‘朱帅旗‘, ‘克里斯蒂安‘]
                        this.firstName = newFullName[0]
                        this.lastName = newFullName[1]
                    }
                },
  • 只用get,可以写get,也可以省略get
    ageGroup: function () {
                    if (this.age > 69) {
                        return ‘老年‘
                    } else if (this.age >= 46) {
                        return ‘中年‘
                    } else if (this.age >= 18) {
                        return ‘青年‘
                    } else if (this.age >= 13) {
                        return ‘青少年‘
                    } else if (this.age >= 7) {
                        return ‘少儿‘
                    } else if (this.age >= 0) {
                        return ‘婴幼儿‘
                    }
                }

以上是关于计算属性(get和set)的主要内容,如果未能解决你的问题,请参考以下文章

Swift get和set方法以及只读属性(计算型属性,本身不保存数据,都是通过计算获得结果)

vue计算属性进入页面就调用怎么设置

vue里computed的set和get方法

computed属性中的get与set

computed属性中的get与set

C# 详细讲解代码 get; set; 和public DateTime time get; set; 的意思?