美文网首页
watchEffect ,computed,readonly,w

watchEffect ,computed,readonly,w

作者: 小柠有点萌 | 来源:发表于2021-06-18 10:29 被阅读0次

readonly

readonly可读,不可修改

<script>
export default {
  name: 'A',
  setup(props, components) {
    console.log(this)  // =>undefined 这时候还没有this呢(this本来应该指的是vue这个对象)
    console.log(props) // 基于proxy构建的响应式数据
    const state= {
        num: 2
    }
   let state_copy = readonly(state)
   state_copy.num ++ 
console.log(state_copy) // =>  2 readonly只可读,不可以修改
    return {
      state
    }
  }
}
</script>

watchEffect

watchEffect 监听props的改变,加载第一次会执行,函数内部依赖的响应式数据发生改变,再次执行.......

<script>
import { ref, readonly, watchEffect } from 'vue';
//父组件中定义为 const message = {num: 3}
export default {
  name: 'A',
   props: {
    message: {
      type: String
    }
  },
setup() {
    // 点击
    const cartClick = () => {
       props.message.num++
          watchEffect(() => {
             console.log('props改变为' + props.message.num) // 点击一次props改变为4, 点击两次props改变为5。。。。
           })
           return {
             cartClick 
           }
       }
    }
  }
}
</script>

computed

计算属性,基于【ref】构建的响应式数据,不支持修改计算属性的值,但是允许修改值的监听

<script>
import { ref, readonly, watchEffect } from 'vue';
export default {
  name: 'A',
  setup(props, components) {
      let x = ref(0)
      let y = computed(() => {
        return x.value + 1
      })
// y.value = 100  X,计算属性的值不允许直接修改
// ######################################################################
`修改方案,修改值的监听`
      let x = ref(0)
      let y = computed({
        get:() => {
            return x.value + 1
        },
        set:(val)=> {
             console.log(val) // 100
        }
      })
     y.value = 100
  return {
      y
    }
  }
}
</script>

watch

watch监听数据源
watch和computed对比,computed有缓存

image.png
<script>
import { ref, readonly, watchEffect } from 'vue';
export default {
  name: 'A',
  setup(props, components) {
       let state = reactive({
        name: 'test'
      })
      state.name = 'aaa'
      watch(state, (state) => {
        console.log(11111, state.name)
      })
  }
}
</script>

相关文章

  • watchEffect ,computed,readonly,w

    readonly readonly可读,不可修改 watchEffect watchEffect 监听props的...

  • vue3与react、 react hooks

    一、Vue3新特性:setup、ref、reactive、computed、watch、watchEffect函数...

  • computed、watch和watchEffect区别

    computed: 计算属性将基于它们的响应依赖关系缓存,本质上是为了简化模版中的逻辑 支持set方法: 模版引用...

  • 十.Composition API( setup,ref,rea

    compositon-api提供了以下几个函数: setup ref reactive watchEffect w...

  • Vue 3的watchEffect、watch、computed

    watchEffect 执行监听 watchEffect比较奇特,它跟Vue 2的watch有所区别,它的写法是:...

  • VUE

    vue生命周期 vue数据双向绑定 vue虚拟dom computed和watch运行机制1 computed和w...

  • watch/watchEffect

    watch 和 watchEffect 区别 watchEffect 与 watch 有什么不同? 第一点我们可以...

  • vue笔记

    0.computed与watch computed是基于它们的依赖进行缓存的,依赖发生变化,则计算属性发生变化。w...

  • vue3,watchEffect和watch监听

    1.watchEffect 立即执行传入的一个函数,同时响应式追踪其依赖,并在其依赖变更时重新运行该函数。 2.w...

  • vim 编写无root权限的文章

    readonly文章通过vim编辑后,可以采用:w !sudo tee % 具体原理,参照feihu.me/blo...

网友评论

      本文标题:watchEffect ,computed,readonly,w

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