uniapp中使用ace在网页上做代码编辑器

boyanx4个月前技术教程20

A、安装

npm install ace-builds

B、在uniapp中使用

<template>
	<view class="content">
	   <div id="editor">ssss</div>
	   <button v-on:click="bb">格式</button>
	   <button v-on:click="aa">压缩</button>
	</view>
</template>

<script>
	 import ace from 'ace-builds/src-noconflict/ace';
   import 'ace-builds/src-noconflict/mode-javascript';
	 import 'ace-builds/src-noconflict/mode-golang';
	 import 'ace-builds/src-noconflict/mode-json';
	 import 'ace-builds/src-noconflict/mode-html';
    import 'ace-builds/src-noconflict/theme-monokai';
	 import 'ace-builds/src-noconflict/theme-dracula';
   import 'ace-builds/src-noconflict/ext-language_tools';
	 import 'ace-builds/src-noconflict/ext-beautify';
	export default {
		data() {
			return {
				title: 'Hello'
			}
		},
		  mounted() {
		    this.initEditor();
		  },
		onLoad() {

		},
		methods: {
			initEditor() {
				    const editor = ace.edit('editor'); // 初始化Ace Editor
             //editor.setTheme("ace/theme/dracula");
				    editor.setTheme("ace/theme/monokai");    //主题
					  editor.session.setMode("ace/mode/json"); //语言类型
				    //editor.session.setMode("ace/mode/golang");
				    //editor.session.setMode("ace/mode/javascript");
				    editor.setValue('{}'); // 设置初始代码值
			},
			bb(){
				const editor = ace.edit('editor'); // 初始化Ace Editor
				editor.session.setMode("ace/mode/json");
				var code =editor.getValue();				
				JSON.stringify(JSON.parse(code), null, 2)
				editor.setValue(JSON.stringify(JSON.parse(code), null, 2));
			},
			aa(){
				const editor = ace.edit('editor'); // 初始化Ace Editor
				editor.session.setMode("ace/mode/json");
				var code =editor.getValue();
				let ss = JSON.stringify(JSON.parse(code))
				editor.setValue(ss);
			}
		}
	}
</script>
<style>
  #editor { width: 100%; height: 700px; font-size: 14px;line-height: 20px;}
</style>

注意点:使用主题和模型一定要对应引用

如:使用editor.setTheme("ace/theme/dracula") 就需要引用 import '
ace-builds/src-noconflict/theme-dracula'

C、演示效果


相关文章

1、从零开始了解和使用WPS的js宏(JSA)

最近使用了一下wps的宏本地客户端功能进行了数据查询,与vba相比感觉还是比较好用的。(所谓本地客户端就是指单机使用运行的wps程序) VBA因为长时间的发展,胜在功能比较强大,支持一些Active...

一款功能超强的在线编辑器,完全开源了!

Etherpad 是一个基于 nodejs 的在线文档编辑器,服务端性能可以得到保证,多个客户端的操作是即时同步的,而且对文档数据提供了存储的支持。「软件介绍」Etherpad 是一个开源的,基于 W...

官宣!KingDraw开放平台正式上线啦

最近一段时间没有大版本更新,好多小可爱都着急了~~其实,KingDraw的小伙伴们已经准备了很多惊喜,近期会陆续带给大家!比如上周全新升级的画板内核、重装上阵的图像识别,还有我们今天“官宣”的King...

7个提高效率的JavaScript调试工具

现在的JavaScript事实上已然成为了流行的web语言,即使它并不完美。很多程序员不喜欢用JavaScript写代码,是因为写到后来总会出现各种莫名其妙的bug,而且在开发大型应用程序的过程中很容...

面向未来的富文本编辑器,支持 AI、MCP,开源免费!

在现代前端开发中,富文本编辑器早已不只是输入文字的工具。它是内容创作、结构表达和用户交互的核心入口。今天,我们来介绍一款面向未来的编辑器框架——Plate.js。Plate.js 是什么?Plate....

如何把deepseak在WPS中使用?(deepl怎么用)

如何把deepseak在WPS中使用目前,**DeepSeek**(深度求索)的官方功能并未直接集成到 **WPS Office** 中,但可以通过以下几种方式间接结合使用,提升办公效率:### **...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。