CodeEditor 代码编辑器

提供代码编辑能力,支持多语言语法高亮(基于 Shiki)、行号显示、Tab 缩进、自动补全括号、文件拖拽等功能。

基础用法
通过 v-model 双向绑定代码内容,language 指定语言。
JavaScript
1
2
3
4
5
6
7
8
多语言支持
支持 JavaScript、TypeScript、HTML、CSS、JSON、Python、Vue 等多种语言高亮。
JavaScript
1
2
3
4
5
6
7
8
只读模式
设置 readonly 属性使编辑器只读,用户可查看和复制代码但不能编辑。
HTML
1
2
3
4
5
6
7
8
9
10
11
12
隐藏头部和行号
设置 show-header 为 false 隐藏顶部栏,show-line-numbers 为 false 隐藏行号。
可折叠 & 底部信息
collapsible 允许折叠编辑器,show-footer 显示光标位置和字符数。
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
变体样式
default / bordered / filled 三种风格。
TypeScript
1
2
3
4
5
6
7
8
9
10
11
自动补全括号 & 智能缩进
输入左括号自动补全右括号,回车自动缩进,支持 Tab / Shift+Tab 缩进/反缩进。
JavaScript
1
2
3
4
5
6
7
8
文件拖拽
将文本文件直接拖入编辑器即可载入文件内容(限制 100KB 以内)。
JSON
1
2
3
4
5
6
7
8
9

Props

参数类型默认值说明
modelValuestring''代码内容,支持 v-model
languagestring'javascript'编程语言,用于语法高亮(js/ts/html/css/json/python/vue 等)
placeholderstring'请输入代码...'占位文本
disabledbooleanfalse是否禁用
readonlybooleanfalse是否只读
size'sm' | 'md' | 'lg''md'编辑器尺寸
variant'default' | 'bordered' | 'filled''default'外观变体
showLineNumbersbooleantrue是否显示行号
showHeaderbooleantrue是否显示头部栏(语言标签 / 操作按钮)
showFooterbooleanfalse是否显示底部信息栏
showCountbooleanfalse是否显示字符计数
collapsiblebooleanfalse是否可折叠
heightstring | number300编辑区域高度,数字为 px
maxlengthnumber-最大字符数
autofocusbooleanfalse是否自动聚焦
tabSizenumber2Tab 缩进空格数
insertSpacesbooleantrueTab 插入空格而非 \t
theme'dark' | 'light''dark'编辑器主题

Events

事件名回调参数说明
update:modelValue(val: string)代码内容变化时触发
change(val: string)代码内容变化时触发
focus(e: FocusEvent)编辑器获得焦点时触发
blur(e: FocusEvent)编辑器失去焦点时触发

Methods

方法名参数说明
focus()聚焦编辑器
blur()失焦编辑器
getEditor() => HTMLTextAreaElement获取原生 textarea 元素