首页 > 其他分享 >Vue3 异步数据渲染模板,ref 获取不到真实节点

Vue3 异步数据渲染模板,ref 获取不到真实节点

时间:2023-01-10 22:34:04浏览次数:45  
标签:异步 渲染 watchEffect 获取 Vue3 ref 模板

获取异步数据,并把数据渲染到模板中,比如 todolist 等。ref 只有在模板渲染之后才可以获取,而异步获取数据期间,模板可能没有被渲染。因此,直接在 setup 执行期间获取 ref、甚至 onMounted 中也同样也是获取失败。

总而言之,模板没有渲染完成,是时机的问题。于是想,有没有其他 API 可以让我们知道模板已经渲染完成?

watchEffect:立即运行一个函数,同时响应式地追踪其依赖,并在依赖更改时重新执行。

官话看着真的晦涩难懂,总之就是,可以监听到本组件内的响应式数据变化,并触发该函数的回调:

const count = ref(0)

watchEffect(() => console.log(count.value))
// -> 输出 0,首先是立即执行,此时已经追踪其依赖,假如发生改变,该函数重新执行。

count.value++
// -> 输出 1,改变响应式数据,重新执行 watchEffect 回调。

总结:如果遇到上诉问题,onMounted 不能解决获取 ref 失败的问题,又数据是异步的。那么,可以使用watchEffect。又或者可以使用watch

const anchor = ref<any>(null)

// 可以获取
watchEffect(() => console.log(anchor.value))

// 也可以获取
watch(anchor, () => console.log(anchor.value))

标签:异步,渲染,watchEffect,获取,Vue3,ref,模板
From: https://www.cnblogs.com/Enziandom/p/17041560.html

相关文章

  • vue3 使用clodop打印插件实现不预览直接打印
    一、下载安装C-LODOPhttps://www.lodop.net/download.html   解压文件后点击exe程序,启用服务   将上述的LodopFuncs.js文件放到工程某个文件下  ......
  • Python中日志异步发送到远程服务器
    背景在Python中使用日志最常用的方式就是在控制台和文件中输出日志了,logging模块也很好的提供的相应的类,使用起来也非常方便,但是有时我们可能会有一些需求,如还需要将日......
  • openEuler RISC-V 的 Firefox 性能大升级,最高 40 倍性能提升
    RISC-VSIG择日即将发布openEulerRISC-V22.03V2版本镜像。本次发版会提供带有SpiderMonkeyJIT编译支持的Firefox最新版本和带有LLVMpipe优化的Mesa最新版本......
  • vue3项目开源项目运行报错::v-deep usage as a combinator has been deprecated. Use
    今天找了一个vue3.0开源项目,在运行的时候npmi报错使用了npmi--legacy-peer-deps根据以上安装依赖成功在运行的时候有报错::v-deepusageasacombinatorhasbeend......
  • VUE3 AXIOS 封装
    网上找了很多AXIOS的封装但是都不是很满意,后来参考其他人的实现做了改动后特分享出来http.ts文件封装importtype{AxiosRequestConfig,AxiosResponse}from'axios......
  • tornado异步非阻塞测试
    测试不同的异步实现方式:协程+第三方库;线程池测试工具最近使用tornado6.1版本进行服务开发,毕竟纸上得来终觉浅,于是针对tornado异步非阻塞的功能进行了详细的验证和测试,并......
  • tornado原理介绍及异步非阻塞实现方式
    tornado原理介绍及异步非阻塞实现方式以下内容根据自己实操和理解进行的整理,欢迎交流~在tornado的开发中,我们一般会见到以下四个组成部分。ioloop:同一个ioloop实例运......
  • vue3 中动态绑定 img src 问题
    vite 官方默认的配置,如果资源文件在assets文件夹打包后会把图片名加上hash值,但是直接通过:src="imgSrc"方式引入并不会在打包的时候解析,导致开发环境可以正常引入,打包后......
  • vue3 之生成二维码
    使用QPCode生成二维码前提:vue3+ts项目安装QPCodenpminstallqrcodejs2-fixes引入importQRCodefrom'qrcodejs2-fixes';页面部分<divclass="login-scan-contain......
  • [VueJsDev] 基础知识 - asyncTool.js异步执行工具
    [VueJsDev]目录列表https://www.cnblogs.com/pengchenggang/p/17037320.htmlasyncTool.js异步执行工具:::details目录目录asyncTool.js异步执行工具Step.1:getA......