如何使用vue-codemirror插件在vue3项目中实现代码编辑器功能?

2026-04-01 12:111阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计762个文字,预计阅读时间需要4分钟。

如何使用vue-codemirror插件在vue3项目中实现代码编辑器功能?

目录+使用+1.命令行安装+2.在需要的组件中配置+配置说明:个人代码编辑器Demo+总结vue-codemirror+基于+CodeMirror+,适用于+Vue+的+Web+代码编辑器。使用+1.命令行安装+npm+install+vue-codemirror+--

目录
  • 使用
    • 1.命令行安装
    • 2.在需要的组件中配置
  • 配置说明:
    • 个人代码编辑区Demo
      • 总结

        vue-codemirror

        基于 CodeMirror ,适用于 Vue 的 Web 代码编辑器。

        使用

        1.命令行安装

        npm install vue-codemirror --save // cnpm install vue-codemirror --save

        如果运行官网例子时, 报错:

        @codemirror/lang-javascript
        @codemirror/theme-one-dark

        可以在终端中安装对应文件, 解决问题

        npm i @codemirror/lang-javascript npm i @codemirror/theme-one-dark

        2.在需要的组件中配置

        <template> <codemirror v-model="code" placeholder="Code gose here..." :style="{ height: '400px' }" :autofocus="true" :indent-with-tab="true" :tabSize="2" :extensions="extensions" @ready="log('ready', $event)" @change="log('change', $event)" @focus="log('focus', $event)" @blur="log('blur', $event)" /> </template> <script> import { Codemirror } from "vue-codemirror"; import { javascript } from "@codemirror/lang-javascript"; import { oneDark } from "@codemirror/theme-one-dark"; import { ref } from "vue"; export default { components: { Codemirror, }, setup() { const code = ref(`console.log('Hello, world!')`); const extensions = [javascript(), oneDark]; return { code, extensions, log: console.log, }; }, }; </script>

        配置说明:

        个人代码编辑区Demo

        代码编辑区

        支持代码编辑区, 满足白天/黑夜主题切换, 满足c++/python语言切换

        不足, 没有满足代码提示

        组件代码 vue3

        <template> <button @click="changeTheme($event)">黑夜</button> <button @click="changeMode($event)">C++</button> <codemirror v-model="code" placeholder="Code gose here..." :style="style" :mode="mode" :spellcheck="spellcheck" :autofocus="autofocus" :indent-with-tab="indentWithTab" :tabSize="tabSize" :extensions="extensions" @ready="log('ready', $event)" @change="log('change', $event)" @focus="log('focus', $event)" @blur="useEditedCode" /> </template> <script> import { Codemirror } from "vue-codemirror"; import { python } from "@codemirror/lang-python"; import { cpp } from "@codemirror/lang-cpp"; import { oneDark } from "@codemirror/theme-one-dark"; import "codemirror/addon/hint/show-hint.css"; import { reactive, ref, toRefs } from "vue"; export default { components: { Codemirror, }, setup() { // 数据 const code = ref(``); let selectValue = "cpp"; let dateTime = "黑夜"; const options = reactive({ style: { height: "400px" }, mode: "text/x-c++src", spellcheck: true, autofocus: true, indentWithTab: true, tabSize: 2, extensions: [cpp(), oneDark], //传递给CodeMirror EditorState。创建({扩展}) }); // 方法 // 失去焦点时,使用已编辑的代码 function useEditedCode() { console.log("@@@blur@@@code:", code.value); console.log("@@@blur@@@cpp:", cpp); } // 改变主题 function changeTheme(e) { console.log("options.extensions:", options.extensions); if (e.target.innerHTML === "黑夜") { options.extensions = []; dateTime = e.target.innerHTML = "白天"; } else { options.extensions = [oneDark]; dateTime = e.target.innerHTML = "黑夜"; } } // 改变模式 function changeMode(e) { console.log("selectValue:", selectValue); if (selectValue === "cpp") { if (dateTime === "黑夜") options.extensions = [python(), oneDark]; else options.extensions = [python()]; selectValue = "python"; e.target.innerHTML = "python"; options.mode = "text/x-python"; } else { if (dateTime === "黑夜") options.extensions = [cpp(), oneDark]; else options.extensions = [cpp()]; selectValue = "cpp"; e.target.innerHTML = "C++"; options.mode = "text/x-c++src"; } } // 返回 return { code, selectValue, dateTime, ...toRefs(options), log: console.log, useEditedCode, changeTheme, changeMode, }; }, }; </script>

        总结

        到此这篇关于前端插件库之vue3使用vue-codemirror插件的文章就介绍到这了,更多相关vue3使用vue-codemirror插件内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

        如何使用vue-codemirror插件在vue3项目中实现代码编辑器功能?

        本文共计762个文字,预计阅读时间需要4分钟。

        如何使用vue-codemirror插件在vue3项目中实现代码编辑器功能?

        目录+使用+1.命令行安装+2.在需要的组件中配置+配置说明:个人代码编辑器Demo+总结vue-codemirror+基于+CodeMirror+,适用于+Vue+的+Web+代码编辑器。使用+1.命令行安装+npm+install+vue-codemirror+--

        目录
        • 使用
          • 1.命令行安装
          • 2.在需要的组件中配置
        • 配置说明:
          • 个人代码编辑区Demo
            • 总结

              vue-codemirror

              基于 CodeMirror ,适用于 Vue 的 Web 代码编辑器。

              使用

              1.命令行安装

              npm install vue-codemirror --save // cnpm install vue-codemirror --save

              如果运行官网例子时, 报错:

              @codemirror/lang-javascript
              @codemirror/theme-one-dark

              可以在终端中安装对应文件, 解决问题

              npm i @codemirror/lang-javascript npm i @codemirror/theme-one-dark

              2.在需要的组件中配置

              <template> <codemirror v-model="code" placeholder="Code gose here..." :style="{ height: '400px' }" :autofocus="true" :indent-with-tab="true" :tabSize="2" :extensions="extensions" @ready="log('ready', $event)" @change="log('change', $event)" @focus="log('focus', $event)" @blur="log('blur', $event)" /> </template> <script> import { Codemirror } from "vue-codemirror"; import { javascript } from "@codemirror/lang-javascript"; import { oneDark } from "@codemirror/theme-one-dark"; import { ref } from "vue"; export default { components: { Codemirror, }, setup() { const code = ref(`console.log('Hello, world!')`); const extensions = [javascript(), oneDark]; return { code, extensions, log: console.log, }; }, }; </script>

              配置说明:

              个人代码编辑区Demo

              代码编辑区

              支持代码编辑区, 满足白天/黑夜主题切换, 满足c++/python语言切换

              不足, 没有满足代码提示

              组件代码 vue3

              <template> <button @click="changeTheme($event)">黑夜</button> <button @click="changeMode($event)">C++</button> <codemirror v-model="code" placeholder="Code gose here..." :style="style" :mode="mode" :spellcheck="spellcheck" :autofocus="autofocus" :indent-with-tab="indentWithTab" :tabSize="tabSize" :extensions="extensions" @ready="log('ready', $event)" @change="log('change', $event)" @focus="log('focus', $event)" @blur="useEditedCode" /> </template> <script> import { Codemirror } from "vue-codemirror"; import { python } from "@codemirror/lang-python"; import { cpp } from "@codemirror/lang-cpp"; import { oneDark } from "@codemirror/theme-one-dark"; import "codemirror/addon/hint/show-hint.css"; import { reactive, ref, toRefs } from "vue"; export default { components: { Codemirror, }, setup() { // 数据 const code = ref(``); let selectValue = "cpp"; let dateTime = "黑夜"; const options = reactive({ style: { height: "400px" }, mode: "text/x-c++src", spellcheck: true, autofocus: true, indentWithTab: true, tabSize: 2, extensions: [cpp(), oneDark], //传递给CodeMirror EditorState。创建({扩展}) }); // 方法 // 失去焦点时,使用已编辑的代码 function useEditedCode() { console.log("@@@blur@@@code:", code.value); console.log("@@@blur@@@cpp:", cpp); } // 改变主题 function changeTheme(e) { console.log("options.extensions:", options.extensions); if (e.target.innerHTML === "黑夜") { options.extensions = []; dateTime = e.target.innerHTML = "白天"; } else { options.extensions = [oneDark]; dateTime = e.target.innerHTML = "黑夜"; } } // 改变模式 function changeMode(e) { console.log("selectValue:", selectValue); if (selectValue === "cpp") { if (dateTime === "黑夜") options.extensions = [python(), oneDark]; else options.extensions = [python()]; selectValue = "python"; e.target.innerHTML = "python"; options.mode = "text/x-python"; } else { if (dateTime === "黑夜") options.extensions = [cpp(), oneDark]; else options.extensions = [cpp()]; selectValue = "cpp"; e.target.innerHTML = "C++"; options.mode = "text/x-c++src"; } } // 返回 return { code, selectValue, dateTime, ...toRefs(options), log: console.log, useEditedCode, changeTheme, changeMode, }; }, }; </script>

              总结

              到此这篇关于前端插件库之vue3使用vue-codemirror插件的文章就介绍到这了,更多相关vue3使用vue-codemirror插件内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

              如何使用vue-codemirror插件在vue3项目中实现代码编辑器功能?