首页 > 其他分享 >vue3 使用 codemirror 实现yaml文件的在线编辑

vue3 使用 codemirror 实现yaml文件的在线编辑

时间:2024-09-11 14:51:16浏览次数:14  
标签:lang const js yaml vue3 import codemirror

vue3 使用 codemirror 实现yaml文件的在线编辑

1. 使用情形

需要对yaml文件进行在线编辑,并且进行基础格式验证
在这里插入图片描述

2. 插件下载

vue-codemirror 在线代码编辑器插件
js-yaml 用于转换json和yaml格式
@codemirror/lang-yaml 用于在编辑器中进行yaml格式验证

npm install js-yaml vue-codemirror @codemirror/lang-yaml codemirror

3. 封装yaml编辑器组件

<template>
  <codemirror
    v-model="code"
    ref="mycodemirror"
    :autofocus="true"
    :extensions="extensions"
    :indent-with-tab="true"
    @change="handleChange"
    :tab-size="2"
  />
</template>
<script lang="ts" name="CodemirrorYaml" setup>
import { Codemirror } from 'vue-codemirror'
import { yaml } from '@codemirror/lang-yaml'
import { ref } from 'vue'

const emit = defineEmits(['update:modelValue', 'update:textVal'])
const code = ref('')
const extensions = [yaml()]
const handleChange = (e: string) => {
  code.value = e
  emit('update:modelValue', code.value)
}
</script>
<style></style>

4. 父组件使用

<CodemirrorYaml v-model="updateForm.valuesSource" />

5. js-yaml 使用

import * as yaml from 'js-yaml'
// load 实现将yaml格式string转成json
const valuesSource = yaml.load('apiGateway: 172.15.15.15\napiGatewayPort: 30084\nchart: test-rt')
// dump实现将json转成yaml格式string, {apiGateway: '172.15.15.15', apiGatewayPort: 30084, chart: 'test-rt'}
const yamlString = yaml.dump(valuesSource)

6. 备注

因为@codemirror/lang-yaml需要从github拉取,在服务器拉取npm包的时候可能会出行超时问题,可以本地下载后放到项目中

在这里插入图片描述

import { yaml } from '@/components/CodeMirror/lang-yaml'

标签:lang,const,js,yaml,vue3,import,codemirror
From: https://blog.csdn.net/weixin_44104809/article/details/142134752

相关文章

  • 一个简约的uniapp登录界面,基于uniapp+vue3+uview-plus
    uniapp-vue3-template一个简约的uniapp登录界面,基于uniapp+vue3+uview-plus页面主要包括:用户登录,手机验证码登录,用户注册,重置密码等页面登录进去后为空白模板源码在文末界面源码uniapp登录界面源码......
  • Vue3项目文件作用
    在Vue3项目中,文件和文件夹的组织结构对于项目的可维护性、可扩展性和团队协作至关重要。以下是一些Vue3项目中常见文件和文件夹的作用:package.json:项目的元数据文件,包括项目名称、版本、描述、作者、依赖项等。定义了项目的脚本,如启动、构建、测试等命令。public/:存......
  • 【卷起来】VUE3.0教程-06-组件详解
    ============各位看官,点波关注和赞吧===========组件允许我们将UI划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构:这和我们嵌套HTML元素的方式类似,Vue实现了自己的组件模型,使我们可以在每个组件内封装......
  • asp.netcore8 + vue3 + mysql 自用记账项目(四)项目部署
    一、生成后台api服务 1、在系统生成的Dockerfile基础上,添加时区标识FROMmcr.microsoft.com/dotnet/aspnet:8.0ASbaseENVTZAsia/ShanghaiRUNln-snf/usr/share/zoneinfo/$TZ/etc/localtime&&echo$TZ>/etc/timezoneWORKDIR/appEXPOSE80EXPOSE443FROMmcr.......
  • asp.netcore8 + vue3 + mysql 自用记账项目(二)环境搭建
    一、vue1、node.js安装安装node.js的攻略网上有很多,这里就不多做赘述,安装完成后,验证是否正常然后就是配置淘宝镜像加速,配置环境变量等操作。2、vue安装上面安装完node.js之后,就可以安装vue环境了,网上同样很多,需要注意的是,vue安装完成了,最好将webpack模版、vue-cli、vue-rout......
  • asp.netcore8 + vue3 + mysql 自用记账项目(三)功能开发
    一、前端前端使用vue3+vant4组件实现页面功能。 1、创建vue3项目各个操作分别是:选择创建模式?手动创建选择项目模块?Babel,Kouter,Wuex,CSSPreprocessors选择vue版本?3.0是否使用历史路由模式?是样式的写法?Less项目配置放在哪?package.json文件里是否保存本次......
  • asp.netcore8 + vue3 + mysql 自用记账项目(一)背景简介
    一、背景18年的时候,用了一年多第三方免费的记账本不用了,两个方面原因,一是随着数据增多,APP用着越来越慢,二是相关数据被用于其他用途的风险很大且广告很烦。所以,后面通过MUI+asp.netcore+sqlserver实现记账web功能,在阿里云1核2G服务器的windows系统上发布了自用的服务,最......
  • vue3 中使用 icon 图标的 3 种方案
    1.element-iconElementPlus提供了一套常用的图标集合。1.1.安装#选择一个你喜欢的包管理器#NPM$npminstall@element-plus/icons-vue#Yarn$yarnadd@element-plus/icons-vue#pnpm$pnpminstall@element-plus/icons-vue#选择一个你喜欢的包管理器1.2.......
  • 使用Vue3.5的onWatcherCleanup封装自动cancel的fetch函数
    前言在欧阳的上一篇这应该是全网最详细的Vue3.5版本解读文章中有不少同学对Vue3.5新增的onWatcherCleanup有点疑惑,这个新增的API好像和watchAPI回调的第三个参数onCleanup功能好像重复了。今天这篇文章来讲讲新增的onWatcherCleanup函数的使用场景:封装一个自动cancel的fetch函......
  • spring boot 项目报错找不到compose.yaml文件
    springboot的项目引用了spring-boot-docker-compose,运行时没问题,但是将该项目放到了一个父项目中作为一个module后,在idea里直接运行的话会报错找不到compose.yaml文件,因为idea试图去父项目的路径下找。如果直接在子项目的路径里运行:mvnspring-boot:run是没问题的,可以启动。......