在vue里使用codemirror遇到的问题(3)

指明CodeMirror向对应的textarea滚动(写数据)的速度(获得焦点时)。大多数的输入都是通过事件捕获,但是有的输入法(如IME)在某些浏览器上并不会生成事件,所以使用数据滚动。默认为100毫秒。

flattenSpans: boolean

默认情况下,CodeMirror会将使用相同class的两个span合并成一个。通过设置此项为false禁用此功能。

addModeClass: boolean

当启用时(默认禁用),会给每个标记添加额外的表示生成标记的mode的以cm-m开头的CSS样式类。例如,XML mode产生的标记,会添加cm-m-xml类。

maxHighlightLength: number

当需要高亮很长的行时,为了保持响应性能,当到达某些位置时,编辑器会直接将其他行设置为纯文本(plain text)。默认为10000,可以设置为Infinity来关闭此功能。

viewportMargin: integer

指定当前滚动到视图中内容上方和下方要渲染的行数。这会影响到滚动时要更新的行数。通常情况下应该使用默认值10。可以设置值为Infinity始终渲染整个文档。注意:这样设置在处理大文档时会影响性能。

vue-codemirror还提供了一些使用的方法

scroll

changes

beforeChange

cursorActivity

keyHandled

inputRead

electricInput

beforeSelectionChange

viewportChange

swapDoc

gutterClick

gutterContextMenu

focus

blur

refresh

optionChange

scrollCursorIntoView

update

我英语不好就步翻译了,不过用到的基本就这几个changes,update,refresh,focus,blur,其他的看你们的需要而定。代码编辑后的保存还是要用到codemirror的方法,而使用codemirror的方法就是在计算属性使用:

computed: { codemirror() { return this.$refs.myCm.codemirror } },

codemirror的方法在官网有很详细的解释,我在这里就列几个常用的
(     

(1)getValue():获取编辑器文本

(2)setValue(textString):设置编辑器文本

(3)undo():撤销一个编辑器

(4)redo():重做一个编辑器

(5)setSelection({line:startLineNumber,ch:start_ch},{line:endLineNumber,ch:end_ch});设置一个新的编辑器

(6)getLine(Integer):获取第n行的文本内容

(7)replaceRange(str1,{line,ch},{line,ch},str2):替换str1中一部分代码为str2

(8)lineCount():获取编辑器总行数

(9)replaceSelection(str1,str2):替换所选内容

到此,用法已经说完,开头我提到的三个问题第一第二个已经解决,第三个解决不了,应该是codemirror内部有自动刷新的程序,解决页面切换编辑器空白的方法可以在options加一个配置viewportMargin:Infinity不过这样会影响性能。

总结

以上所述是小编给大家介绍的在vue里使用codemirror,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/e638991cddf97c180ba2d8fb8d470e0e.html