欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue2導(dǎo)入使用vue-codemirror組件的教程詳解

 更新時間:2024年02月02日 09:13:01   作者:Saga?Two  
vue-codemirror是一個基于Vue的代碼在線編輯器組件,它封裝了CodeMirror編輯器,使得在Vue項目中可以方便地使用CodeMirror,下面我們就來看看vue-codemirror的具體使用吧

1 介紹

vue-codemirror是一個基于Vue的代碼在線編輯器組件,它封裝了CodeMirror編輯器,使得在Vue項目中可以方便地使用CodeMirror。vue-codemirror提供了豐富的配置選項,包括語言模式、高度、自動補全、代碼折疊等功能,可以滿足大部分代碼編輯的需求。相比于其他編輯器,vue-codemirror支持的語言模式非常豐富,包括JavaScript、Python、Java等100多種語言。同時,vue-codemirror還支持自動補全、語法高亮、自動提示等功能,使得代碼編輯更加高效和便捷。

使用vue-codemirror非常簡單,只需要在Vue組件中引入并注冊即可??梢酝ㄟ^設(shè)置組件的屬性來配置CodeMirror編輯器的各種選項,例如語言模式、高度、自動補全等。同時,也可以使用Vue的響應(yīng)式數(shù)據(jù)來動態(tài)更新編輯器的內(nèi)容。

2 安裝使用

2.1 安裝 vue-codemirror

// 指定安裝4.x版本
// 目前最新版本6.x,僅支持Vue3.0
npm i vue-codemirror@4.x --save

// codemirror 需要與 vue-codemirror 同時安裝
npm i codemirror@5.x --save 

2.2 使用 codemirror

2.2.1 引入

新建樣式以及配置文件cm-setting.js

// cm-setting.js
// 組件樣式
import "codemirror/lib/codemirror.css";
// 主題
import "codemirror/theme/3024-day.css"; // 引入主題樣式,根據(jù)設(shè)置的theme的主題引入
import "codemirror/theme/ayu-mirage.css";
import "codemirror/theme/monokai.css";
import 'codemirror/theme/rubyblue.css';

	
// html代碼高亮
import "codemirror/mode/htmlmixed/htmlmixed.js"; 

// 語言模式
import 'codemirror/mode/javascript/javascript.js'

1.全局引入

// main.js
import Vue from "vue";
import App from "./App";

// 引入
import { codemirror } from "vue-codemirror";
	
// 引入配置對應(yīng)的文件(樣式、主題、代碼格式等)
import "@/utils/cm-setting.js";
	
// 注冊使用
Vue.component("codemirror", codemirror);
	
.....

2.局部 (按需) 引入

<template>
	 <div class="content">
	   <codemirror v-model="code" :options="options"></codemirror>
	 </div>
</template>
	
<script>
// 文件內(nèi)引入
import { codemirror } from "vue-codemirror";
// 引入樣式、主題、代碼風(fēng)格等配置或樣式文件
import "@/utils/cm-setting.js";
export default {
  // 注冊使用
  components: {
    codemirror,
  },
  data() {
    return {
      code: "",
      options: {
        line: true,
        theme: "rubyblue", // 主題
        tabSize: 4, // 制表符的寬度
        indentUnit: 2, // 一個塊應(yīng)該縮進多少個空格(無論這在編輯語言中意味著什么)。默認值為 2。
        firstLineNumber: 1, // 從哪個數(shù)字開始計算行數(shù)。默認值為 1。
        readOnly: false, // 只讀
        autorefresh: true,
        smartIndent: true, // 上下文縮進
        lineNumbers: true, // 是否顯示行號
        styleActiveLine: true, // 高亮選中行
        viewportMargin: Infinity, //處理高度自適應(yīng)時搭配使用
        showCursorWhenSelecting: true, // 當(dāng)選擇處于活動狀態(tài)時是否應(yīng)繪制游標(biāo)
        mode: "javascript",
      },
    };
  },
};
</script>

效果如圖所示:

以上為javascript語言編輯器使用教學(xué),更多配置請看配置詳情部分;

3 配置詳情

3.1 語言模式配置

對應(yīng)option.mode配置,詳細配置如下:

1.JavaScript模式:

配置項:mode

描述:JavaScript模式用于編輯和顯示JavaScript代碼??梢栽趍ode屬性中設(shè)置"javascript"來啟用JavaScript模式。

2.Python模式:

配置項:mode

描述:Python模式用于編輯和顯示Python代碼。可以在mode屬性中設(shè)置"python"來啟用Python模式。

3.Java模式:

配置項:mode

描述:Java模式用于編輯和顯示Java代碼??梢栽趍ode屬性中設(shè)置"text/x-java"來啟用Java模式。

4.JSON模式:

配置項:mode

描述:JSON模式用于編輯和顯示JSON數(shù)據(jù)??梢栽趍ode屬性中設(shè)置"application/json"來啟用JSON模式。

5.XML模式:

配置項:mode

描述:XML模式用于編輯和顯示XML數(shù)據(jù)??梢栽趍ode屬性中設(shè)置"application/xml"來啟用XML模式。

6.HTML模式:

配置項:mode

描述:HTML模式用于編輯和顯示HTML代碼??梢栽趍ode屬性中設(shè)置"text/html"來啟用HTML模式。

7.Markdown模式:

配置項:mode

描述:Markdown模式用于編輯和顯示Markdown文本??梢栽趍ode屬性中設(shè)置"text/x-markdown"來啟用Markdown模式。

8.CSS模式:

配置項:mode

描述:CSS模式用于編輯和顯示CSS代碼。可以在mode屬性中設(shè)置"text/css"來啟用CSS模式。

9.Clike模式:

配置項:mode

描述:Clike模式用于編輯和顯示類似于C語言的代碼,支持C、C++、Java、JavaScript等語言。可以在mode屬性中設(shè)置"text/x-clike"來啟用Clike模式。

10.SQL模式:

配置項:mode

描述:SQL模式用于編輯和顯示SQL代碼??梢栽趍ode屬性中設(shè)置"text/x-sql"來啟用SQL模式。

3.2 自動高度設(shè)置

可以通過監(jiān)聽 CodeMirror 編輯器的 resize 事件,然后動態(tài)調(diào)整高度。

以下是一個簡單的示例,展示了如何在 Vue 組件中實現(xiàn)自動高度的 Vue-codemirror:

<template>  
  <div>  
    <codemirror   
      v-model="code"   
      @resize="onResize"  
      :options="cmOptions"  
    ></codemirror>  
  </div>  
</template>  
  
<script>  
import { codemirror } from 'vue-codemirror'  
import 'codemirror/lib/codemirror.css'  
import 'codemirror/mode/javascript/javascript.js' // 引入你需要的模式  
  
export default {  
  components: { codemirror },  
  data() {  
    return {  
      code: '',  
      cmOptions: {  
        tabSize: 4,  
        lineNumbers: true,  
        mode: 'javascript', // 或者其他模式,例如 'python'、'markdown' 等  
        theme: 'default', // 或者其他主題,例如 'monokai'、'solarized' 等  
        line: true, // 顯示行號  
        styleActiveLine: true, // 高亮顯示當(dāng)前行  
        matchBrackets: true, // 括號匹配高亮  
        extraKeys: { 'Ctrl': 'autocomplete' }, // 自定義按鍵映射  
      }  
    }  
  },  
  methods: {  
    onResize() {  
      // 重新計算高度,這里只是一個示例,你可以根據(jù)實際需求進行調(diào)整  
      this.$refs.cm.setSize(null, this.$refs.cm.defaultView.wrapper.clientHeight)  
    }  
  },  
  mounted() {  
    // 獲取 CodeMirror 組件的引用,以便后續(xù)操作  
    this.$refs.cm = this.$refs.codemirror.$refs.cmEditor.$refs.editor;  
  }  
}  
</script>

在這個例子中,我們監(jiān)聽了 resize 事件,并在 onResize 方法中重新設(shè)置了編輯器的高度。請注意,你需要根據(jù)你的實際需求來調(diào)整 onResize 方法中的計算方式。

3.3 主題配置

在全局配置中引入想要的主題樣式,即可在option中使用,如下:

// cm-setting.js
import 'codemirror/theme/rubyblue.css'

vue文件:

options: {
    theme: "rubyblue", // 主題
}

4 總結(jié)

vue-codemirror是一個開源項目,有著良好的社區(qū)支持。如果遇到問題,可以在社區(qū)中尋求幫助或者查找相關(guān)資料。

vue-codemirror也存在一些缺點:

依賴較多:vue-codemirror依賴于CodeMirror和Vue,需要額外安裝和配置這些依賴。

移動端支持不佳:vue-codemirror在移動端瀏覽器上的支持情況不佳,可能會遇到一些兼容性問題。

定制性有限:雖然vue-codemirror提供了豐富的配置選項,但對于一些高級定制需求來說可能還不夠。如果需要更多高級功能或者定制化需求,可能需要自己進行開發(fā)或者尋找其他解決方案。

綜上所述,vue-codemirror是一個功能強大、易于使用的代碼編輯器組件,適用于需要進行代碼編輯和管理的Vue項目。但是需要注意其存在的缺點,并謹(jǐn)慎處理相關(guān)問題。

到此這篇關(guān)于vue2導(dǎo)入使用vue-codemirror組件的教程詳解的文章就介紹到這了,更多相關(guān)vue2 vue-codemirror內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue1.0和vue2.0的watch監(jiān)聽事件寫法詳解

    vue1.0和vue2.0的watch監(jiān)聽事件寫法詳解

    今天小編就為大家分享一篇vue1.0和vue2.0的watch監(jiān)聽事件寫法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue實現(xiàn)不定高虛擬列表的示例詳解

    vue實現(xiàn)不定高虛擬列表的示例詳解

    這篇文章主要為大家詳細介紹了在vue環(huán)境單頁面項目下,如何實現(xiàn)不定高虛擬列表,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • vue倉庫的使用方式

    vue倉庫的使用方式

    這篇文章主要介紹了vue倉庫的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • 詳解Vue基于vue-quill-editor富文本編輯器使用心得

    詳解Vue基于vue-quill-editor富文本編輯器使用心得

    這篇文章主要介紹了Vue基于vue-quill-editor富文本編輯器使用心得,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 詳解vue中async-await的使用誤區(qū)

    詳解vue中async-await的使用誤區(qū)

    這篇文章主要介紹了vue中async-await的使用誤區(qū),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-12-12
  • Vue3(ts)使用vee-validate表單校驗,自定義全局驗證規(guī)則說明

    Vue3(ts)使用vee-validate表單校驗,自定義全局驗證規(guī)則說明

    這篇文章主要介紹了Vue3(ts)使用vee-validate表單校驗,自定義全局驗證規(guī)則說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • axios請求中斷的幾種方法

    axios請求中斷的幾種方法

    在實際應(yīng)用場景中,假如有一個下載或者導(dǎo)出請求,數(shù)據(jù)量非常大的情況下,接口響應(yīng)的會很慢,這時候我我們想中斷請求,該怎么做呢?本文給大家介紹了axios請求中斷的幾種方法,需要的朋友可以參考下
    2024-10-10
  • Vue3實現(xiàn)SSE(Server-Sent?Events)連接

    Vue3實現(xiàn)SSE(Server-Sent?Events)連接

    SSE?是一種允許服務(wù)器向瀏覽器推送事件的技術(shù),這篇文章主要為大家詳細介紹了如何通過vue3實現(xiàn)SSE(Server-Sent?Events)連接,有需要的小伙伴可以了解下
    2024-10-10
  • Vue3中關(guān)于ref和reactive的區(qū)別分析

    Vue3中關(guān)于ref和reactive的區(qū)別分析

    這篇文章主要介紹了vue3關(guān)于ref和reactive的區(qū)別分析,文中通過示例代碼介紹的非常詳細,具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-06-06
  • vue附件下載無法打開的問題及解決

    vue附件下載無法打開的問題及解決

    這篇文章主要介紹了vue附件下載無法打開的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論