不对el-drawer打开的晚一点echarts执行的快 如何让el-drawer打开在echarts之前
时间: 2024-03-09 11:45:01 浏览: 128
如果你希望 `el-drawer` 组件打开的时候 `echarts` 图表已经加载并且渲染完成,可以考虑将 `el-drawer` 的挂载时机推迟到 `echarts` 图表初始化完成之后。具体方法如下:
1. 在 `data` 中添加一个 `chartReady` 属性,用于标记 `echarts` 图表是否已经初始化完成。
```
export default {
data() {
return {
chartInstance: null,
chartReady: false,
drawerVisible: false
};
},
// ...
}
```
2. 在 `mounted` 钩子函数中初始化 `echarts` 图表,并将 `chartReady` 设置为 `true`。
```
export default {
data() {
return {
chartInstance: null,
chartReady: false,
drawerVisible: false
};
},
mounted() {
const chartContainer = this.$refs.chartContainer;
this.chartInstance = echarts.init(chartContainer);
// ...
this.chartReady = true;
},
// ...
}
```
3. 在 `watch` 中监听 `chartReady` 的变化,当 `chartReady` 变为 `true` 时再显示 `el-drawer` 组件。
```
export default {
data() {
return {
chartInstance: null,
chartReady: false,
drawerVisible: false
};
},
mounted() {
const chartContainer = this.$refs.chartContainer;
this.chartInstance = echarts.init(chartContainer);
// ...
this.chartReady = true;
},
watch: {
chartReady(val) {
if (val) {
this.drawerVisible = true;
}
}
},
// ...
}
```
这样做的话,`el-drawer` 组件会等待 `echarts` 图表初始化完成之后再显示,从而避免了 `el-drawer` 打开的晚于 `echarts` 执行的问题。
阅读全文