vue3-computed计算属性

161 阅读1分钟

一、computed简介

computed计算属性,依赖多个属性,任意数据改变,计算属性重新执行。
计算属性包括getter读取和setter修改。默认是getter,计算属性可以依赖其他计算属性。

二、getter与setter的使用

<template>
    姓:<input v-model="firstName" />
    名:<input v-model='lastName' />
</template>
<script>
    import {reactive,computed} from 'vue'
    export default{
        name:'App',
        const state=reactive({
            firstName:'张',
            lastName:'三'
        })
        state.name=computed(()=>{
            get(){
                return state.firstName+'-'+state.lastName
            },
            set(value){
                const arr=value.split('-')
                state.firstName=arr[0]
                state.lastName=arr[1]
            }
        })
    }
</script>

当firstName与lastName的任意一值改变,都会重新获取计算属性的get()方法。

当修改name计算属性的值,都会重新调用计算属性的get()方法。

三、methods方法与computed计算属性的区别

computed:数据会进行缓存,只有数据改变时,才会重新执行。

methods:每次页面渲染就会执行。

当具有大量计算,数据使用频繁,使用计算属性。