一个实例入门Vue计算属性、方法、侦听器


本文摘自PHP中文网,作者王雪芹,侵删。

入门学习Vue,计算属性、方法、侦听器是必不可少的知识点。为了方便简单,这次我们用同样一个例子分别用计算属性、方法、侦听器三种方法实现同样的效果。话不多说,直接上车。

效果:

我在Vue中定义了name1和name2两个值,预期效果是在html中输出name,而name也就是name1+name2拼接而成。无论name1发生改变还是name2发生改变,name都会随着改变。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<div id="root">

        {{name}}

    </div>

 

    <script>

         

        // 父组件

        new Vue({

            el:"#root",

            data:{

                name1:'jiang',

                name2:'he',

                name:'jiang he',

            }

        })

     </script>

浏览器效果:

微信截图_20200816185943.png

1、计算属性实现效果

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<div id="root">

        {{name}}

    </div>

 

    <script>

         

        // 父组件

        new Vue({

            el:"#root",

            data:{

                name1:'jiang',

                name2:'he',

            },

            

            computed:{

                name:function(){

                 return this.name1+' '+this.name2;

              }

            }

        })

    </script>

分析:computed就是计算属性,从字面意思也能计算也就是把name1和name2拼接起来,最终生成了name。

要注意计算属性是有缓存的,也就是只要当name1或者name2发生变化,和缓存中的值不同的时候,才会重新计算。

如果name1或者name2没有发生变化,computed不会重新计算。

2、method方法实现效果

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<div id="root">

        {{name()}}

    </div>

 

    <script>

         

        // 父组件

        new Vue({

            el:"#root",

            data:{

                name1:'jiang',

                name2:'he',

            },

            

            methods:{

                name:function(){

                    return this.name1+' '+this.name2;

                }

            }

             

        })

    </script>

注意:插值表达式{{name()}}必须有括号。

和计算属性不同,只要页面加载一次,那么方法就执行一次,没有缓存一说。

3、监听器实现效果

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<div id="root">

        {{name}}

    </div>

 

    <script>

         

        // 父组件

        new Vue({

            el:"#root",

            data:{

                name1:'jiang',

                name2:'he',

                name:'jiang he',

            },

            watch:{

                name1:function(){

                    this.name= this.name1+' '+this.name2;

                 },

                name2:function(){

                    this.name= this.name1+' '+this.name2;

                }

            }

注意:监听器实现,从字面意思上也是能理解,监听既是监听name1和name2的变化,如果有变化,那么name就会被重新赋值。这里呢,有一个name默认值的。

最后

三种方法都可以实现同样的方法,那么最佳的是哪个呢?

最佳的是第一个计算属性,计算属性同第二种methods相比有缓存,节省性能,而同第三种相比又简洁了代码。

大家在熟练后会越来越了解它们了。

以上就是一个实例入门Vue计算属性、方法、侦听器的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

vue文件如何实现跳转页面

vue开发必须要搭脚手架么?

九大vuejs常见面试题,你都会吗?

vue 中实现 echarts 随窗体变化

vue.js用什么编辑器

vue 轻量级图表组件

vue-cli项目怎么使用vw单位?

vue.怎么绑定属性

vue.js怎样引入到html中

vue中路由之间如何通讯?方法介绍

更多相关阅读请进入《vue》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...