第一種用法: 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;
}