关于 vue 组件生命周期何时获取到$refs 值的问题

发布于 2022-09-12 04:08:24 字数 270 浏览 11 评论 0

我有个页面如下,组件是第三方库vueSeamlessScroll

<vue-seamless-scroll ref="scroll" :data="[1,2,3,4]"></vue-seamless-scroll>

生命周期
mounted(){
    console.log(this.$refs.scroll)//获取到的是 undefined
}

请教各位大佬请问 不应该在 mounted 生命周期获取吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

入画浅相思 2022-09-19 04:08:24

父子组件是子先mounted,然后才是父mounted,随便写个demo就能得到答案,题主你的问题不在于生命周期的顺序,我按照这个组件github中的样例改了一下,是能够正常获取的image.pngimage.png。有可能是外层包了v-if什么的导致根本没有渲染吧

山色无中 2022-09-19 04:08:24

你的vue-seamless-scroll组件在当前页面中相当于一个子组件,组件中包含组件,形成父子组件,这时候的生命周期应该是这样:

// 会省略部分生命周期
父组件创建--created
子组件创建--created
子组件挂载--mounted
父组件挂载--mounted
子组件销毁--destroyed
父组件销毁--destroyed
塔塔猫 2022-09-19 04:08:24

在create也可以获取,需要添加$nextTick

created() {
    this.$nextTick(() => {
        console.log(this.$refs.scroll)
    })
}
烦人精 2022-09-19 04:08:24

mounted不确保子组件已经挂载

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文