当前位置: 首页 > news >正文

watchEffect 里有响应式依赖时并没有自动追踪

watch,watchEffect 在异步操作中,它只追踪回调同步执行期间访问的属性,而在异步回调中,只有在第一个 await 之前访问到的依赖才会被追踪。 这是因为watchEffectwatch默认只在同步执行期间追踪依赖项的变化。

watchEffect(
  async (aaa) => {
    const response = await fetch(
      `https://img.bosszhipin.com/static/file/2023/${x.value}`
    )
    console.log('watchEffect', y.value)
  }
)

原因:y.value放在 await fetch后面,放它前面就会自动追踪。

下面写法也可以自动追踪

watchEffect(async (aaa) => {
  fetch(`https://img.bosszhipin.com/static/file/2023/${x.value}`)
    .then((response) => response.json())
    .then((json) => console.log(json))
  console.log('watchEffect', y.value)
})

下面方法也可以 y.value 肯定为 true,在await前用一下即可

watchEffect(async (aaa) => {
  if(y.value) {
    fetch(`https://img.bosszhipin.com/static/file/2023/${x.value}`)
      .then((response) => response.json())
      .then((json) => console.log(json))
  }
  await nextTick()
  // y.value = (await response.json()).nm
  console.log('watchEffect', y.value)
})

相关文章:

  • 个人网站可以做论坛万能搜索
  • 长沙营销型网站建设费用产品全网营销推广
  • 免费的个人简历ppt模板百度seo刷排名工具
  • 如何建网站韩国热搜榜
  • 网站站点怎么做web前端培训费用大概多少
  • 被他人备案后做违法网站北京百度seo
  • C++关键字之mutable
  • Tesseract OCR:起源、发展与完整使用指南
  • 多线程篇学习面试
  • 请谈谈 Vue 中的 key 属性的重要性,如何确保列表项的唯一标识?
  • 设计模式Python版 中介者模式
  • Vue 3 + Vite 项目中配置代理解决开发环境中跨域请求问题
  • Linux系统管理与编程01:准备工作
  • vim 多个关键字高亮插件介绍
  • A. Jagged Swaps
  • mybatis从接口直接跳到xml的插件
  • 不同activity的mViewModel是复用同一个的还是每个activity都是创建新的ViewModel
  • DeepSeek各模型现有版本对比分析
  • Python selenium 库
  • 轻松将 Python 应用移植到 Android,p4a 帮你实现
  • 485. 最大连续 1 的个数
  • 深入了解ThreadLocal底层原理-高并发架构
  • LLM2CLIP论文学习笔记:强大的语言模型解锁更丰富的视觉表征
  • Hot100 动态规划
  • 【Java 面试 八股文】JVM 虚拟机篇
  • 三数之和:经典问题的多种优化策略