现象
- 在使用 el-tabs 组件时,如果 MonacoEditor 放在非默认激活的标签页中,可能会遇到初始化问题,导致 MonacoEditor 无法正常显示。
- 这是因为 MonacoEditor 在初始化时需要一个可见的容器,而未激活的标签页在初始状态下是不可见的,这会导致 MonacoEditor 无法正确渲染。
解决方法
el-tab-pane 组件提供了 lazy 属性,可以实现标签页的懒加载。这样,只有在标签页被激活时才会渲染其内容,从而避免初始化问题。
<el-tabs v-model="activeName" class="demo-tabs" tabPosition="left" >
<el-tab-pane label="aaa" name="first">
</el-tab-pane>
<el-tab-pane label="bbb" name="second" lazy>
<MonacoEditor v-model:value="code" language="sql" theme="vs" lineNumbers="on" />
</el-tab-pane>
<el-tab-pane label="ccc" name="third"> </el-tab-pane>
</el-tabs>