V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cnu4
V2EX  ›  Vue.js

Vue-Codemirror-Lite: 在线代码编辑器 Codemirror 的轻量级 Vue.js 组件

  •  1
     
  •   cnu4 · 2017-01-16 17:38:51 +08:00 · 10576 次点击
    这是一个创建于 2657 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Vue-Codemirror-Lite

    项目地址:https://github.com/cnu4/vue-codemirror-lite

    CodeMirror Component For Vue.js (support 1.x and 2.x).

    Lightweight

    为了减少打包后的体积,所有的语言模式和插件在默认的情况下没有加载, 要使用它们, 见 Using Language Modes and Addons.

    Demo

    Live Demo: https://cnu4.github.io/vue-codemirror-lite

    本地运行实例:

    npm install && npm run dev

    Installation

    npm install vue-codemirror-lite

    Usage

    // Require in Webpack
    var Vue = require('vue')
    var VueCodeMirror = require('vue-codemirror-lite')
    
    Vue.use(VueCodeMirror)
    
    // Or use as component (ES6)
    import Vue from 'vue'
    import { codemirror } from 'vue-codemirror-lite'
    
    export default {
      components: {
        codemirror
      }
    }
    

    Usage in component

    
    <!-- simple -->
    <codemirror :value="code"></codemirror>
    
    <!-- simple (with bindings in Vue1.x) -->
    <codemirror :value.sync="code"></codemirror>
    
    <!-- simple (with bindings in Vue2.x) -->
    <codemirror v-model="code"></codemirror>
    
    <!-- advanced -->
    <codemirror
      :value="code"
      :options="editorOption"
      ref="myEditor"
      @change="yourCodeChangeMethod">
    </codemirror>
    
    export default {
      data () {
        return {
          code: 'const str = "hello world"'
        }
      },
      computed: {
        editor() {
          // get current editor object
          return this.$refs.myEditor.editor
        }
      },
      mounted() {
        // use editor object...
        this.editor.focus()
        console.log('this is current editor object', this.editor)
      }
    }
    

    Properties

    • value String 编辑器的值
    • options Object (newValue) 传递给 CodeMirror 实例的配置选项

    前往 CodeMirror Configuration 查看更多可用选项

    Using Language Modes and Addons

    CodeMirror 中包含了许多的语言模式

    默认情况下所有的语言模式和插件在默认的情况下没有加载, 启用它们:

    • 安装 vue-codemirror-lite
    • require vue-codemirror-lite 后 require 一个语言模式或者插件
    • 在 options 对象中配置 mode 选项
    <template>
      <codemirror :options="{
        mode: 'javascript',
        extraKeys: {'Ctrl-Space': 'autocomplete'}
      }"></codemirror>
    </template>
    
    <script>
      import { codemirror } from 'vue-codemirror-lite'
      require('codemirror/mode/javascript/javascript')
      require('codemirror/mode/vue/vue')
    
      require('codemirror/addon/hint/show-hint.js')
      require('codemirror/addon/hint/show-hint.css')
      require('codemirror/addon/hint/javascript-hint.js')
    
      export default {
        ...
      }
    </script>
    

    demo 目录下的例子实现了 JavaScript 和 vue 语法高亮和 JavaScript 代码提示

    前往 CodeMirror Manual 查看更多的语言模式和插件.

    License

    MIT

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1238 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:11 · PVG 02:11 · LAX 11:11 · JFK 14:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.