一,安装

cnpm install monaco-editor --save
cnpm install monaco-editor-webpack-plugin --save-dev

二,使用

1.webpack.base.conf.js

module.exports = {plugins: [new MonacoWebpackPlugin()]
};

2.子组件

<template><div class="myEditor"><p><el-button type="success" icon="el-icon-check" circle @click="RunResult"></el-button><span class="theme" style="float:right"><el-select v-model="theme" size="mini" @change="themeChange" placeholder="请选择主题"><el-optionv-for="item in themeOption":key="item.value":label="item.label":value="item.value"></el-option></el-select></span></p><div id="container" ref="container" style="height:600px;width:500px;"></div></div>
</template>
<script>
import * as monaco from 'monaco-editor';
export default {props:{codes:{type:String,default:function(){return '<div>请编辑html内容</div>'}},language:{type:String,default:function(){return 'html'}},editorOptions:{type:Object,default:function(){return {selectOnLineNumbers: true,roundedSelection: false,readOnly: false,      // 只读cursorStyle: 'line',     //光标样式automaticLayout: false,   //自动布局glyphMargin: true,  //字形边缘useTabStops: false,fontSize: 28,        //字体大小autoIndent:true,//自动布局//quickSuggestionsDelay: 500,   //代码提示延时}}}},data(){return{themeOption:[{value:'vs',label:'默认'},{value:'hc-black',label:'高亮'},{value:'vs-dark',label:'深色'},],theme:'hc-black',codesCopy:null,//内容备份}},mounted(){this.initEditor();},methods:{initEditor(){  //初始化let self = this;self.$refs.container.innerHTML = '';self.monacoEditor = monaco.editor.create(self.$refs.container, {value:self.codesCopy || self.codes,language: self.language,theme: self.theme,//vs, hc-black, or vs-darkeditorOptions:self.editorOptions,});self.$emit('onMounted',self.monacoEditor);//编辑器创建完成回调self.monacoEditor.onDidChangeModelContent(function(event){//编辑器内容changge事件self.codesCopy = self.monacoEditor.getValue();self.$emit('onCodeChange',self.monacoEditor.getValue(),event);});//编辑器随窗口自适应window.addEventListener('resize',function(){initEditor();})},RunResult(){console.log(this.monacoEditor.getValue());},themeChange(val){`在这里插入代码片`this.initEditor();}}
}
</script>
<style scoped>#container{height:100%;text-align: left;}
</style>

3.父组件

//1.引入
import MyEditor from "@/components/Editor/EditorHtml";
 <MyEditor:language="'html'":codes="htmlCodes"@onMounted="htmlOnMounted"@onCodeChange="htmlOnCodeChange"ref="myEditor"/>
 data() {return {htmlCodes: "<div>This is html</div>",}},methods:{htmlOnMounted(edit) {this.htmlEditor = edit;},htmlOnCodeChange(value, event) {},}

需注意编辑器初始化

this.$refs.myEditor.initEditor()this.$nextTick(()=> {this.$refs.myEditor.initEditor()})

vue-monaco-editor的使用相关推荐

  1. monaco editor + vue的配置

    monaco editor是vscode的御用编辑器. 功能非常强大,使用方便轻巧,对js\ts等等语言支持都良好,能方便的扩展以支持其他语言或者自定义的特性. 夸了这么多,这里只说它一个问题: 这货 ...

  2. Vue项目管理器中 安装及使用Monaco Editor

    Vue项目管理器中 安装及使用Monaco Editor 记录项目开发中遇到的难题. 部分代码参考自鹰子大佬的: Monaco Editor安装及使用 1.安装 (1)安装插件 搜索安装monaco插 ...

  3. Vue中使用Monaco Editor代码编辑器

    一.安装依赖 npm install editor@1.0.0 npm install monaco-editor@0.19.3 npm install monaco-editor-webpack-p ...

  4. vue项目中引入monaco editor

    monaco-editor概述 monaco-editor 是微软开源的一款web代码编辑器,vscode就是集成monaco-editor来实现的. 官方示例 官方文档 使用 安装 npm安装 np ...

  5. Monaco Editor (vite/webpack + ts + vue项目使用)

    1.什么是Monaco Editor?Monaco Editor 微软之前有个项目叫做Monaco Workbench,后来这个项目变成了VSCode,而Monaco Editor(就是从这个项目中成 ...

  6. Monaco Editor结合Vue搭建好用的json格式化网站

    Monaco Editor github地址 安装 > npm install monaco-editor 然后导入monaco import * as monaco from "mo ...

  7. linux终端怎么设置monaco,Monaco Editor 使用指南

    为什么要写这篇文章? 最近开发了一个简单的在线代码编辑器,基于 Monaco Editor 实现,没有了解过 Monaco 的人可能不知道,我们常用的 VS Code 也是基于它实现的~ 回到正题,M ...

  8. 在线代码编辑器:Monaco Editor

    monaco editor是微软开源的一款web版代码编辑器.它支持智能提示,代码高亮,代码格式化. Monaco Editor是为VS Code提供支持的代码编辑器,运行在浏览器环境中.编辑器提供代 ...

  9. 代码编辑器之monaco editor

    MonacoEditor编辑器 (一)简介 底层vscode开发的一款编辑器,各方面的样式功能基本与vscode一致. (二)官方文档 Monaco Editor (microsoft.github. ...

  10. 手把手教你实现在Monaco Editor中使用VSCode主题

    背景 笔者开源了一个小项目code-run,类似codepen的一个工具,其中代码编辑器使用的是微软的Monaco Editor,这个库是直接从VSCode的源码中生成的,只不过是做了一点修改让它支持 ...

最新文章

  1. 单片机c语言NTC温度查表程序,STM32查表法读NTC值并显示温度
  2. 置信学习:让样本中的“脏数据“原形毕露
  3. [剑指offer][JAVA]面试题第[26]题[树的子结构][递归]
  4. 从一个简单的“欢迎“页面开始小程序之旅
  5. TutorialsPoint 电子书 归档 2017
  6. 简析语音识别技术的工作原理
  7. 解决:/system/bin/sh: /system/bin/test-ndk: not executable: magic 7F45报错
  8. online_judge_1478
  9. linux模拟http请求命令
  10. PYQT5:基于QsciScintilla的代码编辑器分析10--语法高亮颜色选择
  11. nrf52840蓝牙协议栈主机BLE串口
  12. codeblocks编辑代码输入法光标无法跟随解决方案
  13. python接收163邮件以及下载附件(以163邮箱为例)
  14. Putty 设置前景色和背景色
  15. IntelliJ IDEA在Mac下格式化代码快捷键
  16. mac 开机启动php,mac系统,php-fpm加入开机启动项
  17. 利用Neo4j的Java驱动获取节点的所有直接关系
  18. FIR滤波器窗口设计法和频率采样设计法
  19. JAVA数字藏品NFT平台源码(附带部署文档)
  20. sku设计mysql_如何设计SKU表结构

热门文章

  1. 牛刀弑鸡,用SpringMVC的架构模式来描绘一下普通java程序之图书管理免费代码分享
  2. 论文阅读:Leveraging Website Popularity Differences to Identify Performance Anomalies
  3. PageRank Algorithm
  4. vue.js 三种方式安装(vue-cli)
  5. 过年时,把舅舅家 WiFi 搞好了
  6. 编程中无穷大常量的设定技巧(ox3f3f3f3f)
  7. 上亿条个人信息被泄露 源头竟是房产商
  8. dnsmasq mysql_DNSmasq介绍
  9. DNSmasq使用总结
  10. java jce_了解Java JCE的加密