0%

【025】Vue选项:数据中的computed

前言

在日常开发中,如果说有哪些选项是经常使用的,computed绝对是其中一个。因为我们有时需要对原始数据进行更改后再输出。比如我在文本框输入了一大串数据,然后我希望这一大串数据可以颠倒显示出来,你也许会在模版内直接使用表达式,比如这样:

1
2
3
<div>
{{ msg.split('').reverse().join('') }}
</div>

这样写可以达到我们的要求,看起来也没什么问题。但是,如果我输入的这一大串数据需要在多个地方显示出来,总不能每个地方都写这么一个表达式吧?这样会很累的。Vue 也考虑了在模板中放入太多的逻辑会让模板过重且难以维护,所以computed出现了。

computed 的使用

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script>
</head>
<body>
<div id="app">
<div>{{ reversedMsg }}</div>
<input v-model="msg" />
</div>
<script type="text/javascript">
var vm = new Vue({
el: '#app',
data() {
return {
msg: 'hello'
}
},
computed: {
// 颠倒
reversedMsg() {
return this.msg.split('').reverse().join('')
}
}
})
</script>
</body>
</html>

通过上面的示例代码,可以看到颠倒数据的表达式已经被统一在了computed中,这样写会给人更清晰的感觉,在后期维护中也会更方便。