请教 Vue 如何使用 CodeMirror 的 MergeView(代码差异对比)?

发布于 2022-09-06 02:26:50 字数 923 浏览 16 评论 0

先上示例:
http://codemirror.net/demo/me...

这是官方的示例,我想在 vue 中使用,试了好多方法,没有成功。

我看过 gitHub 上有 vue-codemirror,vue-codemirror-lite 等,好像只能使用普通文本编辑功能,没有 merge view 的功能。


这是我在组件中的使用代码示例:

<template>
  <div>
    <div id="editor" ref="editor"></div>
  </div>
</template>

<script>
// 我按照官方页面的方式把需要的库引进来
import CodeMirror from 'codemirror'
// 我把diff_match_patch存到本地了
import './diff_match_patch'
import 'codemirror/addon/merge/merge'

export default {
  data () {
    return {}
  },
  mounted () {
    // 这是官方使用 mergeView 的示例,
    // 我这样用会提示:diff_match_patch 的错误
    CodeMirror.MergeView(this.$refs.editor, {
      lineNumbers: true
    })
    
    // 另外,这样使用没有错误,但就是一个简单的文本编辑器:
    CodeMirror(this.$refs.editor, {
      lineNumbers: true
    })
  }
}


</script>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烛影斜 2022-09-13 02:26:50

已自行解决,出错原因是谷歌算法最后导出的变量是 this ,这在浏览器环境下可行,把变量换成全局的就好了。

若相惜即相离 2022-09-13 02:26:50

可以粘贴一下相关代码吗?方便分析问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文