vue3代码编辑器 codemirror-editor-vue3

该文章已生成可运行项目,

官方文档:https://github.com/RennCheung/codemirror-editor-vue3

安装:

npm install codemirror-editor-vue3 codemirror@5.x -S

main.ts注册组件

import { createApp } from 'vue'
import App from './App.vue'
import { InstallCodeMirror } from "codemirror-editor-vue3" 
const app = createApp(App)
app.use(InstallCodeMirror) 

演示图片:

演示:

<template>
    <Codemirror v-model:value="code" :options="cmOptions" border ref="cmRef" height="600" width="800" @change="onChange"
        @input="onInput" @ready="onReady">
    </Codemirror>
</template>
<script lang="ts" setup>
import { ref, onMounted, onUnmounted } from "vue"
import "codemirror/mode/javascript/javascript.js"
import Codemirror from "codemirror-editor-vue3"
import type { CmComponentRef } from "codemirror-editor-vue3"
import type { Editor, EditorConfiguration } from "codemirror"
import "codemirror/theme/dracula.css";
const code = ref<any>(
    `
console.log('代码编辑器');
     console.log(1);
`
)
const cmRef = ref<CmComponentRef>()
const cmOptions: EditorConfiguration = {
    mode: "text/javascript",
    theme: 'dracula',   // 设置你喜欢的主题  暗黑色
}

const onChange = (val: string, cm: Editor) => {
    console.log(val)
    console.log(cm.getValue())
}

const onInput = (val: string) => {
    console.log(val)
}

const onReady = (cm: Editor) => {
    console.log(cm.focus())
}

onMounted(() => {
    setTimeout(() => {
        cmRef.value?.refresh()
    }, 1000)

    setTimeout(() => {
        cmRef.value?.resize(300, 200)
    }, 2000)

    setTimeout(() => {
        cmRef.value?.cminstance.isClean()
    }, 3000)
})

onUnmounted(() => {
    cmRef.value?.destroy()
})
</script>

本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值