美文网首页
2019-01-26

2019-01-26

作者: 郝繁 | 来源:发表于2019-01-26 22:40 被阅读0次

#  VUE的计算属性,方法,侦听器

(1)计算属性,方法,侦听器

```

<div>{{fullName}}</div>

<div>{{fullName()}}</div>//通过调用函数来显示fullName

<div>{{fullName}}</div>//通过侦听器来显示fullName

<script>

var vm = new Vue({

    el:"#app",

    data:{

        firestName:"Dell",

        lastName:"Lee"

        fullName:"Dell Lee",//通过侦听器来实现显示效果需要书写定义这个

    },

    //方法可以与计算属性实现同样的效果,但是使用效果不如计算属性

    methods:{

        fullName:()=>{

            return this.firstName + " " + this.lastName

        }

    }

    //计算属性,,计算属性有缓存机制。再为改变fullName中的数据时,重新渲染页面时,可以被直接调用,不需要重新执行,性能更高

    computed:{

        fullName:()=>{

            return this.firstName + " " + this.lastName

        },

    //侦听器,通过侦听firstName和lastName的改变来显示fullName,与计算属性一样有缓存机制,只有当watch中的值改变时才会重新编译加载。但是比computed复杂

    watch:{

        firstName:()=>{

            this.fullName=this.firstName +  " " + thislastName;

        },

        lastName:()=>{

            this.fullName = this.firstName + " " + this.lastName;

            }

    }

    }

})

</script>

```

(2)计算属性的setter和getter

```

<div id="app">

    {{fullName}}

</div>

<script>

var vm = new Vue({

    el:"#app",

    data:{

        firestName:"Dell",

        lastName:"Lee"

    },

    computed:{

        fullName:{

        //计算属性的get方法

            get:()=>{

              return this.firstName + " " + this.lastName

            },

            //set接受外部传入的value值

            set:function(value){

            var arr = value.split("");

            this.firstName = arr[0];

            this.lastName = arr[1];

                console.log(value);

            }

        }

    }

</script>

```

相关文章

网友评论

      本文标题:2019-01-26

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