.vue组件中获取DOM元素问题

 我来答
新科技17
2022-07-26 · TA获得超过5978个赞
知道小有建树答主
回答量:355
采纳率:100%
帮助的人:79.2万
展开全部

一、问题引入
原项目把一块内容直接写在了模块中(浏览器显示的一整个页面),现在想把它提成一个单独组件,而且把其中使用 document.getElementById('id') 改为 ref 获取元素的形式。

单独创建一个 .vue 组件,通过绑定传值,触发页面变化从而触发 beforeUpdate 。

然后发现 beforeUpdate() 中根本获取不到此元素,用原生js获取也不行。

三、解决
1、 beforeUpdate() 生命周期函数中,在获取元素语句外套用 this.$nextTick(function(){...}) 。( mounted 无效,原因待查明)
官方解释:将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。即DOM真正加载完成。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式