美文网首页
监听器和计算属性的区别watch,computed

监听器和计算属性的区别watch,computed

作者: 小柠有点萌 | 来源:发表于2020-12-09 11:48 被阅读0次
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <p>这里是data里默认title<span style="color:red;margin-left:20px;">{{title}}</span></p>
        <p>这里是使用computed反转的title<span style="color:red;margin-left:20px;">{{changeTitle}}</span></p>
        <p>这里是使用watch监听器反转的title<span style="color:red;margin-left:20px;">{{watchTitle}}</span></p>
    </div>
    <script>
        let vm = new Vue({
            el: '#app',
            data: {
                title: '默认文字',
                watchTitle: 'watch文字',
                obj: {
                    a: 'aa'
                }
            },
            computed: { 
                // computed本来就是用来返回计算后的值得,是需要马上得到的,而不是要等一段时间才能得到的 ,所以不能使用异步
                // 同步/多个数据影响一个数据时,尽量考虑使用
                changeTitle() {
                    // 1.这里的属性都是新属性,不能跟data中的属性重复
                    return this.title.split('').reverse().join('')
                }
            },
            watch: {
                // 这个属性监听data已经存在的属性
                immediate: true, // 如果是true,进入页面执行watch,不写或者为false,进入页面不自动执行,title发生改变,这个函数就会执行
                deep: true, // 引用数据类型数据发生改变时,也能出发当前函数。 adj: f12 输入 vm.obj = {}时候,  (新值老值不相等,oldV不等于 newV);当vm.obj.a = 'bb'时候,(新值老值相等,oldV等于 newV)
                title(oldV, newV) { // 异步/一个数据影响多个数据时,尽量考虑使用
                    // 1.只要data里的title发生改变,这个函数就会执行
                    // 函数里爱写啥写啥,不受限制
                    this.watchTitle = this.title.split('').reverse().join('')
                }
            }
        })
    </script>
</body>
</html>

计算属性computed和监听器watch区别?
1.能使用计算属性computed的尽量使用计算属性,但是计算属性不能使用异步(computed本来就是用来返回计算后的值的,是需要马上得到的,而不是要等一段时间才能得到的 ,所以不能使用异步)
2.原则上多个数据影响一个数据的时候,考虑使用计算属性computed,当一个数据影响多个数据时候,考虑使用watch监听器
3.计算属性里面放置的属性都要是新的属性,不能和data里的属性重名,监听器watch里面监听的属性都是已经存在的属性

相关文章

  • 监听器和计算属性的区别watch,computed

    计算属性computed和监听器watch区别?1.能使用计算属性computed的尽量使用计算属性,但是计算属性...

  • computed与watch的区别

    计算属性computed和监听器watch都可以观察属性的变化从而做出响应,不同的是: 计算属性computed更...

  • Vue中computed和watch属性的区别

    一、什么是computed计算属性? 1.1 computed 和 watch 的区别 和 使用场景 1.1.1 ...

  • vue中methods 和 computed 和 watch方法

    methods 和 computed 和 watch方法的区别 computed是计算属性,是有依赖缓存的,只有在...

  • computed 和 watch

    computed 和 watch 区别: computed 是计算一个新的属性,并将该属性挂载到 vm(Vue 实...

  • Vue基础

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

  • Vue(4)computed,watch,methods

    computed和watch,methods的区别 1.computed是计算属性 它会根据所依赖的数据动态显示新...

  • Vue学习笔记

    1.计算属性computed与监听属性watch的区别 1>计算属性是依赖的属性值改变后,将计算属性的返回值作为...

  • vue-api-数据

    computed 计算属性 props watch 监听

  • 计算属性

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

网友评论

      本文标题:监听器和计算属性的区别watch,computed

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