【发布时间】:2018-06-14 16:13:46
【问题描述】:
我有一个 Vue 组件,它使用图表库在 canvas 元素上绘制图表。我希望图表占据与窗口的宽度成比例的宽度,这意味着图表库在虚拟 DOM 被渲染到浏览器之前不知道它需要多大才能使其 canvas 元素。
有没有什么方法可以在渲染 DOM 后触发图表的渲染? Vue 包含 mounted 生命周期钩子,但它被触发得太早了,即使在 mounted 之后使用 $nextTick 在渲染管道中也太早了。
如果做不到这一点,是否有另一种(hack)方法可以检测到 DOM 已生成,以便我可以使用它来触发图表渲染?
【问题讨论】:
-
这可能就是你要找的东西:vuejs.org/v2/guide/transitioning-state.html
-
遗憾的是,这里没有进行状态转换或数据更改。安装组件时所有数据都已到位。
-
mounted()应该是正确的点,或者$nextTick在mounted()中,如果你也需要等待子组件完成渲染......你需要等待异步的东西吗好吗?
标签: javascript vue.js vue-component