pjs计算方式(JS代码编译器Monaco使用方法)
类别:编程学习 浏览量:2915
时间:2022-01-15 01:03:33 pjs计算方式
JS代码编译器Monaco使用方法前言我的需求是可以语法高亮、函数提示功能、自动换行、代码折叠
MonacoMonaco是微软家的,支持的语言很多,还有缩略地图,有时候提示不好用然后包体很大。
The Monaco Editor is the code editor that powers VS Code.
使用方法官网
[官方文档](https://microsoft.github.io/monaco-editor/index.html)
[在线demo](https://github.com/Microsoft/monaco-editor-samples)
[github](https://github.com/Microsoft/monaco-editor)
安装
yarn add monaco-editor | npm install monaco-editor
引入
import * as monaco from 'monaco-editor' // 包体很大了 但是demo可以跑起来 //自定义一些提示函数 const suggestions = [ { label: 'split_chinese', insertText: 'split_chinese(inputString,language);', // 不写的时候不展示。。 detail: 'inputString:need split string\n' + 'language:\nCH_T:traditional Chinese\nCH_S:Chinese Simplified\n HK_T:Hong Kong Traditional\nTW_T:Taiwan Traditional\n' }, { label: 'uuid', insertText: 'var uuid = uuid();', detail: 'generate uuid' }, { label: 'HashMap', insertText: 'var hashMap = new HashMap();', detail: 'create hash object' } ]
初始化
mounted() { monaco.languages.registerCompletionItemProvider('JavaScript', { provideCompletionItems() { return { suggestions: suggestions } }, triggerCharacters: [' ', '.'] // 写触发提示的字符,可以有多个 }) let self = this setTimeout(function () { self.init() }, 50) //因为父组件还未传参 子组件已经渲染 } //初始化方法 init(script) { let self = this if (script) this.code = script self.$refs.container.innerHTML = '' var editor = monaco.editor.create(this.$refs.container, { value: this.code, language: 'javascript', minimap: { enabled: false }, fontSize: '12px', fixedOverflowWidgets: true // 超出编辑器大小的使用fixed属性显示 }) editor.onDidChangeModelContent(function () { self.$emit('update:code', editor.getValue()) //用来监听编辑器内容变化,将内容传给父组件 }) }
html
<template> <li ref="container" class="monaco"></li> </template>
css
<style scoped> .monaco { width: 95%; height: 400px; border: 1px solid #dcdfe6; text-align: left; margin-right: 20px; border-radius: 4px; } </style>
运行效果
缺点
我的推翻了,不想再跑一下,代码还在就写一个demo。运行还是可以的(有客户使用但也反馈不好用,是我自己的锅,不配使用Monaco)真的很难用,特别是提示的功能,一般情况下是没有提示的。然后一个包很大,好像有3.9G(严重)。可能没有按需引入,但是不引入没有提示功能,自定义函数提示。还有webpack配置,来回折腾!
以上就是JS编译器Monaco使用教程的详细内容,更多关于JS编译器Monaco的资料请关注开心学习网其它相关文章!
您可能感兴趣
- js统计文本框剩余可输入字数
- js实现div(javascript拖曳互换div的位置实现示例)
- element-ui 菜单悬停样式(js如何构造elementUI树状菜单的数据结构详解)
- js项目经验(JS实现扫雷项目总结)
- js实现网页特效(利用原生js模拟直播弹幕滚动效果)
- js时间变成日期格式(js日期时间格式化的方法实例)
- 微信发送镭射效果代码(JS实现微信"炸屎"大作战功能)
- extjs tabPanel的用法
- js RegExp用法
- js中的内存机制(详解JS内存空间)
- jscanvas背景色(JavaScript canvas实现代码雨效果)
- js常见面试题
- python pdf文件操作(Python常见读写文件操作实例总结文本、json、csv、pdf等)
- jsp实现短信验证码(手动实现js短信验证码输入框)
- extjs anchor 锚点布局
- js特效星空(ThingJS粒子特效一键实现雨雪效果)
- 魔兽世界 设计师爆料,原始版本并无PVP,跨阵营属于返璞归真(魔兽世界设计师爆料)
- 吐槽完《弧光大作战》之后,我们和设计师聊了聊魔兽首款手游的立项初衷和未来(吐槽完弧光大作战之后)
- 魔兽争霸3自定义战役少年杰雷 2(魔兽争霸3自定义战役少年杰雷)
- 今日菜价 芥兰涨幅最高 1.33 ,花菜降幅最高 3.10(今日菜价芥兰涨幅最高)
- 今日菜价 椰菜涨幅最高 3.25 ,水空心菜降幅最高 2.58(今日菜价椰菜涨幅最高)
- 今日菜价 红三鱼涨幅最高 4.41 ,黄鳝降幅最高 5.06(红三鱼涨幅最高)
热门推荐
- html5滑动刷新(HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码)
- lnmp环境配置要多大空间(LNMP系列教程之 设置404错误页面)
- nginx和lua哪个好(nginx+lua单机上万并发的实现)
- laravel服务提供者应用场景(Laravel如何创建服务器提供者实例代码)
- css隐藏div(CSS控制DIV层显示和隐藏的实现方法)
- nodejs 内部模块代码(详解Node.js如何处理ES6模块)
- h5微信手机端debug模式(iOS微信H5页面橡皮回弹效果的踩坑记录)
- C#中默认参数
- dedecms模板特点(为DedeCMS换上精美多样的提示信息窗口)
- dede标签调用大全(织梦dede所有实用标签调用方法搜集整理)