概念
计算 属性:
1 以后当属性用
2 只有关联的数据变化,才重新运算
3 有缓存,数据没有变化,页面再更新,它也不变化
例子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="s" >
<ul>
<li v-for="str in strList2" v-text="str"></li>
</ul>
</div>
</body>
<script>
const app = Vue.createApp({
data() {
return {
s: '',
strList: ['a', 'ab', 'abc', 'abcd', 'abcde', 'abcdef', 'abcdefg'],
}
},
computed: {
strList2(){
return this.strList.filter(item => {
//indexOf不存在返回-1,存在返回索引
return item.indexOf(this.s) > -1
})
}
}
})
app.mount("#app")
</script>
</html>
组合式
<template>
<div>
<input type="text" v-model="age">
<input type="text" v-model="age2">
</div>
</template>
<script>
import {ref,computed} from 'vue'
export default {
setup(){
let age = ref(0)
let age2 = computed({
get(){
return +age.value+1
},
set(value){
// 输出新修改的值
return age.value=value-1
}
})
return{
age,age2
}
}
}
</script>