Vue computed计算属性

<body>

<script src="../libs/vue.js"></script>

<div id="app">

    <!--可读性不强-->

    {{message.split("").reverse().join("")}}

    <br>

    <!--每次都需要计算-->

    {{reverseMessage()}}

    {{reverseMessage()}}

    <br>

    <!--响应式依赖进行缓存-->

    {{reverseMsg}}

    {{reverseMsg}}

    <br>

    {{calculate}}

    {{getFullName}}

    {{getFullName = 'Alice Xiaosu'}}

</div>

<script>

    new Vue({

        el: '#app',

        data: {

            message: 'Hello Vue.js',

            array: [1, 3, 4, 6, 7, 10, 3, 5]

        },

        computed: {

            reverseMsg() {

                console.log('=====reverseMsg=====')

                return this.message.split('').reverse().join('')

            },

            calculate() {

                var list = this.array.filter((item) => {

                    return item % 2 === 0

                })

                return list

            },

            getFullName: {

                //getter

                get() {

                    return this.firstName + this.lastName;

                },

                //setter

                set(val) {

                    //Alice Xiaosu

                    //分割

                    var value = val.split(' ')

                    this.firstName = value[0];

                    this.lastName = value[1];

                }

            }

        },

        methods: {

            /*方法写在methods*/

            reverseMessage() {

                console.log("=====reverseMessage=====")

                //methods里拿data的数据

                /*

                * item 数组里的数据

                * index 索引

                * data 数据源

                * */

                // return 如果是true  放到数组里, false  从数组里移除

                const result = this.array.filter((item, index, data) => {

                    console.log(item)

                    console.log(index)

                    console.log(data)

                    return item >= 5

                })

                console.log('array', this.array)

                console.log('result', result)

                this.array.filter((item) =>

                    item >= 5

                )

                return this.message.split('').reverse().join('')

            }

        },

    })

</script>

</body>

点击侦听器属性

计算和方法的区别:

我们可以将同一函数定义为一个方法而不是一个计算属性。两种方式的最终结果确实是完全相同的。然而,不同的是计算属性是基于它们的响应式依赖进行缓存的。只在相关响应式依赖发生改变时它们才会重新求值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ![Flask](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW...
    极客学院Wiki阅读 7,273评论 0 3
  • 不知不觉易趣客已经在路上走了快一年了,感觉也该让更多朋友认识知道易趣客,所以就谢了这篇简介,已做创业记事。 易趣客...
    Physher阅读 3,441评论 1 2
  • 双胎妊娠有家族遗传倾向,随母系遗传。有研究表明,如果孕妇本人是双胎之一,她生双胎的机率为1/58;若孕妇的父亲或母...
    邺水芙蓉hibiscus阅读 3,722评论 0 2
  • 晴天,拥抱阳光,拥抱你。雨天,想念雨滴,想念你。 我可以喜欢你吗可以啊 我还可以喜欢你吗可以,可是你要知道我们不可...
    露薇霜凝阅读 1,240评论 1 2