在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);
}

  

.CodeMirror {
border: 1px solid #eee;
height: auto;
}

.CodeMirror-scroll {
height: auto;
overflow-y: hidden;
overflow-x: auto;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM