欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在vue里使用codemirror的两种用法

程序员文章站 2023-08-23 10:14:57
这是我自己做的一个左边点击对应的标题,右边显示相应代码的一个功能。代码显示这里用的是vue codemirror插件。 第一种用法: 1、安装:npm install vue codemirror save 2、在main.js中引入 3、在组件中使用 在组件中声明: html代码写法: data中 ......

在vue里使用codemirror的两种用法
这是我自己做的一个左边点击对应的标题,右边显示相应代码的一个功能。代码显示这里用的是vue-codemirror插件。

第一种用法:

1、安装:npm install vue-codemirror --save
2、在main.js中引入

import vuecodemirror from 'vue-codemirror'
import 'codemirror/lib/codemirror.css'
vue.use(vuecodemirror)

3、在组件中使用

import { codemirror } from 'vue-codemirror'
import "codemirror/theme/ambiance.css";  // 这里引入的是主题样式,根据设置的theme的主题引入,一定要引入!!
require("codemirror/mode/javascript/javascript"); // 这里引入的模式的js,根据设置的mode引入,一定要引入!!

在组件中声明:

components:{
      codemirror
 },

html代码写法:

<codemirror
      ref="mycode"
      :value="curcode"
      :options="cmoptions"
      class="code">
 </codemirror>

data中cmoptions的配置,这里我写的比较简单,具体的配置项,可以去查官方文档

curcode:'',
cmoptions:{
    value:'',
     mode:"text/javascript",
    theme: "ambiance",
    readonly:true,
 }

第二种用法:

第1步、第2步和第一种用法中的相同
3、在组件中使用

import codemirror from 'codemirror/lib/codemirror'
  import "codemirror/theme/ambiance.css";
  require("codemirror/mode/javascript/javascript");

在组件中写法,要写在 mounted中:

 mounted(){
      this.editor = codemirror.fromtextarea(this.$refs.mycode, {
      mode:"text/javascript",
      theme: "ambiance",
      readonly:true,
},

html代码写法:

<textarea ref="mycode" class="codesql public_text" v-model="code"></textarea>

在切换改变值的方法,需要用到setvalue方法,而在第一种方式中直接改变v-model绑定的值就可以了

changecode(value){
  this.code = value;        
  this.editor.setvalue(this.code);
}