vue3结合codemirror6原生使用写法

这篇具有很好参考价值的文章主要介绍了vue3结合codemirror6原生使用写法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:网上零星几篇基本狗屁不通,非程序水平不行,属实文笔太烂,词不达意,干啥弄不明白要么杂乱无章。我的需求很简单,最近网站上要做个ol的学习模块,需要一个html的编辑器,一个预览。不需要别人给我封装对我而言多余的东西。为此琢磨了下网页在线编辑器,codemirror 经过时间的沉淀,已经是非常成熟的开源框架了,为此直接采用。非研究文章,纯使用文章。

codemirror vue3,前端,javascript,开发语言

codemirror创建基础设置的编辑器

codemirror6 进行了全面的重写, 将整个库依据功能 化成了不同的包。所以安装codemirror后 还不能完整的使用它。你需要额外的去加载对应功能的包。

为创建基础设置的编辑器 你需要安装如下包

npm install --save codemirror @codemirror/state @codemirror/view

接着

import { EditorState} from "@codemirror/state";
import { basicSetup } from "codemirror";
import { EditorView } from "@codemirror/view";
let state = EditorState.create({
    extensions: [
      basicSetup,
    ],
    // 编辑器中的内容
    doc: "",
  });
let view = new EditorView({
  state,
  // 编辑器 挂载的dom
  parent: document.querySelector("#code-container"),
});

插件extensions

观察上方代码,看到extensions 选项, 这个是可供注入的 插件字段,basicSetup中 只提供了一个最基本的设置,但是没有语法的解析、颜色主题的更换、包括我们的编辑器常用的 Tab 缩进,这个字段相当于是一个可供我们拓展的字段,就是要什么就加什么,不行就自己写。 主要分两种 ,一种是语法解析器, 这种

语法解析器加载(html)

主要用于对标签的识别提示,以及高亮字符等。
别忘记 npm install @codemirror/lang-html 对应的包

import { EditorState, Compartment } from "@codemirror/state";
import {  html } from "@codemirror/lang-html";
const languageConf = new Compartment();
let state = EditorState.create({
    extensions: [
      basicSetup,
      languageConf.of(html()),
    ],
    doc: "",
});
颜色主题更换
import { EditorState, Compartment } from "@codemirror/state";
import { dracula } from '@uiw/codemirror-theme-dracula';

const languageConf = new Compartment();
let state = EditorState.create({
    extensions: [
      basicSetup,
      dracula ,
    ],
    doc: "",
});
字符缩进
import { indentWithTab } from "@codemirror/commands";
import { EditorView, keymap } from "@codemirror/view";

let state = EditorState.create({
  extensions: [
    basicSetup,
    keymap.of([indentWithTab]),
  ],
  doc: "",
});

预览

新建一个iframe 获取到Dom文章来源地址https://www.toymoban.com/news/detail-716492.html

// 运行代码. 把编辑器的内容 渲染到iframe的容器上
const runCode = function () {
  frameDom.srcdoc = view.state.doc.toString();
};

到了这里,关于vue3结合codemirror6原生使用写法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3代码编辑器组件codemirror-editor-vue3

    官方文档:https://github.com/RennCheung/codemirror-editor-vue3 国内镜像:https://renncheung.github.io/codemirror-editor-vue3/zh-CN/guide/getting-started 参考文档:https://codemirror.net/5/mode/index.html 点击参考文档,选择语言并点击在文章最后找到mode的格式 在配置项中修改mode,并引入对应语言js 如使用pyt

    2024年02月14日
    浏览(39)
  • Vue3项目中在线编辑组件,codemirror-editor-vue3

    #安装 #组件中使用 #如果想要更换不同的主题色, 只需要在组件中引入你要使用的主题色的css文件,然后配置theme的名字为引入的css文件名称。 https://codemirror.net/5/theme/   #效果  

    2024年02月05日
    浏览(36)
  • vue3+element-plus Dialog对话框的使用 与 setup 写法的使用

    一. 传统写法不使用setup语法糖 方式一:通过 v-model 的方式实现子组件的显示与隐藏 父组件的内容 子组件内容 方式二:通过为元素绑定 ref 的方式实现子组件的显示与隐藏 父组件的内容 子组件内容 2. setup 语法糖写法 父组件 子组件 总结: 对于传统写法两种方式来看,都有

    2024年02月09日
    浏览(52)
  • vue3中keep-alive的使用及结合transition使用

    在组件中使用(这里结合了 transition 内置动画组件 ) 在router.js中配置 keepAlive 自定义属性 VueCompilerError: expects exactly one child element or component. 不报错,但 keep-alive 内置组件的缓存没有效果,onActivated 函数也不会执行 vue中keep-alive的使用及详解

    2024年02月11日
    浏览(41)
  • vue3.x结合element-plus如何使用icon图标

     基于 Vue 3的Element Plus如何使用icon图标 首先注意Element Plus版本:官网如图所示,  基于vue3的具体如何使用: 参考官网文档: 1.首先选择一种方式安装  2.然后全局注册图标 在main.js或main.ts文件中引入:  3.然后就可以使用了,具体实例如下: 使用方式1:输入框中使用 输入框

    2023年04月08日
    浏览(51)
  • Vue3 TS写法 父子组件传值(通讯)

    父组件: 子组件: 通过defineProps来接受数据(无须引入直接使用即可) 子组件可写默认值也可以不写两种情况 子组件通过defineEmits派发一个事件 (一样无须引入直接使用即可)  父组件接受子组件的事件 chilFun

    2024年02月15日
    浏览(38)
  • 【前端】vue3中引入class类的写法

    单独将一个类作为一个js文件,然后引入到vue3页面使用 使用的vue页面

    2024年04月13日
    浏览(41)
  • vue3组合式api单文件组件写法

    一,模板部分  二,js逻辑部分 

    2024年02月13日
    浏览(51)
  • vue3 组合式 api 单文件组件写法

    Vue3 中的 Composition API 是一种新的编写组件逻辑的方式,它提供了更好的代码组织、类型推导、测试支持和复用性。相比于 Vue2 的 Options API,Composition API 更加灵活和可扩展。 在 Composition API 中,我们使用 setup 函数来定义组件的逻辑部分。setup 函数是一个特殊的函数,在创建组

    2024年02月12日
    浏览(39)
  • 十分钟,带你了解 Vue3 的新写法

    本文的目的,是为了让已经有 Vue2 开发经验的 人 ,快速掌握 Vue3 的写法。 因此, 本篇假定你已经掌握 Vue 的核心内容 ,只为你介绍编写 Vue3 代码,需要了解的内容。 首先,Vue3 新增了一个叫做组合式 api 的东西,英文名叫 Composition API。因此 Vue3 的  script  现在支持三种写法

    2024年02月05日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包