美文网首页
计算属性和methods对比

计算属性和methods对比

作者: 63537b720fdb | 来源:发表于2020-07-16 01:20 被阅读0次
    <div id="app">
        <!-- 插值操作拼接字符串的方法尽量不用,因为语法过于复杂 -->
        <h2>{{firstName}} {{lastName}}</h2>

        <!-- 函数拼接字符串 -->
        <h2>{{getFullName()}}</h2>

        <!-- 计算属性拼接字符串 -->
        <h2>{{fullName}}</h2>
    </div>
    <script src="./js/vue.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                firstName : 'Taylor',
                lastName : 'Swift'
            },
            methods: {
                getFullName : function() {
                    return this.firstName + ' ' + this.lastName;
                }
            },
            computed: {
                fullName : function () {
                    return this.firstName + ' ' + this.lastName;
                }
            }
        })
    </script>
image.png

3种方法都能实现字符串的拼接,
第1种插值操作的方法最好不用,因为语法过于繁琐和复杂的代码不要放在html里处理
函数方法和计算属性看上去没有什么不同,但是为什么提倡使用计算属性


image.png

Vue内部对计算属性有 缓存机制,只要监测到计算属性中的值没有发生变化,即使再次调用计算属性,也是将上次缓存的结果传递出去,而methods无论其中的值有没有发生变化,只要调用一次他就执行一次。
所以,在需要转换数据的情况下,计算属性的性能比methods高。

验证:

    <div id="app">
        <!-- 插值操作拼接字符串的方法尽量不用,因为语法过于复杂 -->
        <!-- <h2>{{firstName}} {{lastName}}</h2> -->

        <!-- 函数拼接字符串 -->
        <h2>{{getFullName()}}</h2>
        <h2>{{getFullName()}}</h2>
        <h2>{{getFullName()}}</h2>
        <h2>{{getFullName()}}</h2>

        <!-- 计算属性拼接字符串 -->
        <!-- <h2>{{fullName}}</h2> -->
    </div>
            methods: {
                getFullName : function() {
                    console.log('getFullName()被调用了');
                    return this.firstName + ' ' + this.lastName;
                }
            }

methods执行了4次,调用了4次


image.png
    <div id="app">
        <!-- 插值操作拼接字符串的方法尽量不用,因为语法过于复杂 -->
        <!-- <h2>{{firstName}} {{lastName}}</h2> -->

        <!-- 函数拼接字符串 -->
        <!-- <h2>{{getFullName()}}</h2>
            
        <!-- 计算属性拼接字符串 -->
        <h2>{{fullName}}</h2>
        <h2>{{fullName}}</h2>
        <h2>{{fullName}}</h2>
        <h2>{{fullName}}</h2>
    </div>
            computed: {
                fullName : function () {
                    console.log('fullName被调用了');
                    return this.firstName + ' ' + this.lastName;
                }
            }

fullName中的数据没有发生改变,由于缓存机制,即使执行了4次,也只调用了1次。


image.png

改变this.firstName的值
this.firstName一旦改变,计算属性就马上被调用


image.png

相关文章

  • 计算属性和methods对比

    3种方法都能实现字符串的拼接,第1种插值操作的方法最好不用,因为语法过于繁琐和复杂的代码不要放在html里处理函数...

  • vue04

    计算属性的setter和getter 计算属性和methods的对比 在重复打印某句语句的时候,多使用计算属性(只...

  • Vue的计算属性computed

    一,作用 简化模板,将复杂的计算逻辑写在计算属性中 二,对比methods methods也能实现相同的效果,但计...

  • 计算属性

    1.计算属性get方法: 计算属性(computed)和Methods区别:计算属性(computed)适合:有缓...

  • vue学习笔记(一)

    computed(计算属性) vs methods 计算属性与方法的对比两者可以相互替代,最终结果都是一样的,不同...

  • Vue基础

    1 计算属性computed和watch和methods的区别 计算属性和方法确实能达到相同的结果,但是计算属性是...

  • 5.计算属性

    计算属性关键词:computed methods方法和computed的区别methods和computed的区别...

  • 计算属性

    computed和methods的对比 computed,计算属性在处理一些复杂逻辑时是很有用的。可以使用 met...

  • Vue中 computed、methods和watch的区别

    一、computed 和 methods computed是计算属性,methods是方法,都可以实现对 data...

  • 计算属性

    计算属性关键词:computed methods方法和computed的区别 区别: 可以使用 methods 来...

网友评论

      本文标题:计算属性和methods对比

      本文链接:https://www.haomeiwen.com/subject/mcashktx.html