前端工具 | JS编译器Monaco使用教程

使用方法
官网
官方文档
在线demo
github
安装
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. r e f s . c o n t a i n e r . i n n e r H T M L = ′ ′ v a r e d i t o r = m o n a c o . e d i t o r . c r e a t e ( t h i s . refs.container.innerHTML = '' var editor = monaco.editor.create(this. refs.container.innerHTML=vareditor=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

css USB Microphone https://www.soft-voice.com/ Wooden Speakers https://www.zeshuiplatform.com/ 亚马逊测评 www.yisuping.cn 深圳网站建设www.sz886.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值