在 Vue 3 项目中优雅集成 Monaco Editor —— 使用 monaco-editor-vue3
🌟 为什么选择 Monaco Editor?
Monaco Editor 是微软开源的代码编辑器,也是 VS Code 的核心组件。它具备:
✅ 完整的语法高亮与智能提示
✅ 错误检查、代码折叠、自动补全
✅ 多语言支持(JavaScript、Python、Java 等)
✅ 高性能,适合大型项目
而在 Vue 3 生态中monaco-editor-vue3 是目前最成熟、轻量且活跃维护的封装方案。
⚠️ 注意:该库已发布到
npm,可直接使用npm安装!
🛠️ 第一步:安装依赖
npm install monaco-editor-vue3 monaco-editor🔧 第二步:配置 main.ts(解决 Web Worker 错误)
import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';
import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';
import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker';
import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker';
import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker';
self.MonacoEnvironment = {
getWorker(_, label) {
if (label === 'json') {
return new jsonWorker();
}
if (label === 'css' || label === 'scss' || label === 'less') {
return new cssWorker();
}
if (label === 'html' || label === 'handlebars' || label === 'razor') {
return new htmlWorker();
}
if (label === 'typescript' || label === 'javascript') {
return new tsWorker();
}
return new editorWorker();
},
};🔄 修改后务必重启开发服务器!
💻 第三步:在 Vue 3 组件中使用
<template>
<div id="monaco_editor_div">
<CodeEditor
v-model:value="code"
:options="editorOptions"
language="javascript"
theme="vs-dark"
/>
</div>
</template>
<script lang="ts" setup>
import {ref} from 'vue';
import {CodeEditor} from 'monaco-editor-vue3';
const code = ref(`function hello() {
console.log('Hello, Monaco Editor Vue3!');
}`);
const editorOptions = {
fontSize: 14,
minimap: {enabled: false},
automaticLayout: true
};
</script>
<style lang="scss" scoped>
#monaco_editor_div {
height: 400px;
}
</style>💡效果图

本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 疯狂彩虹屁
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果