vue集成codemirror代码编辑器

举报
青年码农 发表于 2022/08/25 00:37:44 2022/08/25
【摘要】 点击上方“ 青年码农 ”关注 回复“特效源码”可获取各种资料 CodeMirror是一个用 JavaScript 为浏览器实现的通用文本编辑器。它专门用于编辑代码,并带有多种语言模式和插件 ,可实现更高级的编辑功能。 本教程是基于vue2实现集成,使用vue-codemirror插件 1. 安装 # npm np...
点击上方“ 青年码农 ”关注

回复“特效源码”可获取各种资料

CodeMirror是一个用 JavaScript 为浏览器实现的通用文本编辑器。它专门用于编辑代码,并带有多种语言模式和插件 ,可实现更高级的编辑功能。

本教程是基于vue2实现集成,使用vue-codemirror插件

1. 安装

# npm
install
# yarn
add

2. 新建组件并引入

<template>
<div>
<codemirror
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ref="cm"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v-model="value"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:options="options"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@input="inputChange"
&nbsp;&nbsp;&nbsp;&nbsp;>
</codemirror>
</div>
</template>

<script>
//&nbsp;全局引入vue-codemirror
import&nbsp;{&nbsp;codemirror&nbsp;}&nbsp;from&nbsp;"vue-codemirror";
//&nbsp;引入css文件
import&nbsp;"codemirror/lib/codemirror.css";
//&nbsp;引入主题&nbsp;可多个
import&nbsp;"codemirror/theme/ayu-mirage.css";
//&nbsp;引入语言模式&nbsp;可多个
import&nbsp;"codemirror/mode/sql/sql.js";
export&nbsp;default&nbsp;{
&nbsp;&nbsp;name:&nbsp;"codemirror",
&nbsp;&nbsp;components:&nbsp;{&nbsp;codemirror&nbsp;},
&nbsp;&nbsp;props:&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;value:&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:&nbsp;""
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;},
&nbsp;&nbsp;data()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options:&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;语言及语法模式
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mode:&nbsp;"text/x-sql",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;主题
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;theme:&nbsp;"ayu-mirage",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;显示函数
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line:&nbsp;true,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lineNumbers:&nbsp;true,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;软换行
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lineWrapping:&nbsp;true,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;tab宽度
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tabSize:&nbsp;4
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;};
&nbsp;&nbsp;},
&nbsp;&nbsp;methods:&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;inputChange(content)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.$nextTick(()&nbsp;=>&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log("content:"&nbsp;+&nbsp;content);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;}
};
</script>

主题引入多个,我们可以实现动态切换主题,语言模式支持多种语言。

options支持的属性很多,上面的例子只使用了几个常用的属性,更多属性请参照官方文档

https://codemirror.net/doc/manual.html#config

关于如何切换主题和语言模式,通过npm安装的vue-codemirror插件,可以在node_modules中找到codemirror文件夹,你想要的都在这里

64dae3f1006ca428ca6b8b28b06b24b6.png

只需要引入对应的文件,在options中切换即可。

3.最终效果

f68db150d7cdf1bd2f3f1d2be858d8ee.png


文章来源: blog.csdn.net,作者:NMGWAP,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/NMGWAP/article/details/124980746

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。