computed和methods的区别

Vue中computed怎么理解?
computed 又称计算属性, 什么情况下会用到计算属性,我们直接上代码理解一下

//我们有个name,经过多次逻辑处理最终显示到页面中
//它不是一个简单的声明式逻辑,我么需要看一段时间才能理解name
<template>
    <div>
        {{name.split('').reverse().join('')}}
        <br>
        {{message}}
    </div>
</template>

<script>
    export default {
        data() {
            return {
                name: 'hello vue!'
            }
        },
        //所以我们使用computed,处理复杂逻辑,计算属性
        computed: {
            message() {
                return this.name.split('').reverse().join('');
            }
        }
    }
</script>
//使用methods,每次render都会重新计算
<template>
    <div>
        {{getMessage()}}
    </div>
</template>

<script>
    export default {
        data() {
            return {
                message: 'hello vue!'
            }
        },
        methods: {
            getMessage() {
                return this.message.split('').reverse().join('');
            },
            now() {
                return Date.now()
            }
        },
    }
</script>

<style lang="scss" scoped>

</style>
//使用computed是基于它们的依赖进行缓存的,也就是说this.message不改变,每次访问都会立即返回结果
<template>
    <div>
        {{getMessage}}
    </div>
</template>

<script>
    export default {
        data() {
            return {
                message: 'hello vue!'
            }
        },
        computed: {
            getMessage() {
                return this.message.split('').reverse().join('');
            },
            now() {
                return Date.now()
            }
        },
    }
</script>

<style lang="scss" scoped>

</style>

computed 跟data相比更适用于复杂逻辑运算
computed 跟methods相比更适用于需要缓存的计算

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容