前端插件库-VUE3 使用 vue-codemirror 插件

news2024/9/24 7:15:15
VUE3 插件 vue-codemirror 使用步骤和实例、基于 CodeMirror ,适用于 Vue 的 Web 代码编辑器。

第一步:安装 vue-codemirror & codemirror 包 , 以及语言包 

npm install codemirror --save
npm install vue-codemirror --save

npm install @codemirror/lang-javascript --save
npm install @codemirror/lang-python --save

npm install @codemirror/lang-cpp --save
npm install @codemirror/theme-one-dark --save

第二步:在需要的组件中配置

src\components\code\Index.vue

<script setup>
import {
  watch, ref, toRefs , computed
} from 'vue';
import { Codemirror } from 'vue-codemirror';
import { javascript } from '@codemirror/lang-javascript';
import { python } from '@codemirror/lang-python';
import { oneDark } from '@codemirror/theme-one-dark';
const code = ref('');
const props = defineProps({
    modelValue: {
        type: String,
        required: false,
        default: ''
    },
    language: {
        type: String,
        default: 'javascript'
    },
    disabled: {
        type: [String, Boolean],
        default: false
    },
    style: {
        type: [Object],
        default: () => ({
            height: '400px'
        })
    }
})
const emit = defineEmits(['update:modelValue'])
const {modelValue, language, disabled, style } = toRefs(props)
const fullScreen = ref(false);
const lang = { javascript, python }[language.value];
const extensions = [lang(), oneDark]
watch(() => modelValue.value, (val) => {
    code.value = val;
});
watch(code.value, (val) => {
    emit('update:modelValue', val);
});
const comStyle = computed(() => ({ ...style.value, ...{ height: fullScreen.value ? '100%' : '400px' } }));
</script>
<template>
    <Codemirror 
        :disabled="disabled" 
        v-model="code" 
        placeholder="暂无数据..." 
        :style="comStyle" 
        :autofocus="true"
        :indent-with-tab="true" 
        :tabSize="2" 
        :fullScreen="true" 
        :extensions="extensions" 
        @ready="() => {}" 
        @change="() => {}"
        @focus="() => {}" 
        @blur="() => {}"
    ></Codemirror>
</template>

 第三步:使用

<script setup lang="ts">
import { ref } from 'vue'
import Code  from '@common/code/Index.vue'

const fetchTxtFileData = ref('')
</script>

<template>
    <Code v-model="fetchTxtFileData" :style="{width: '47vw'}"></Code>
</template>

  第四步:最后效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1352904.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据机器学习TF-IDF 算法+SnowNLP智慧旅游数据分析可视化推荐系统

文章目录 大数据机器学习TF-IDF 算法SnowNLP智慧旅游数据分析可视化推荐系统一、项目概述二、机器学习TF-IDF 算法什么是TF-IDF&#xff1f;TF-IDF介绍名词解释和数学算法 三、SnowNLP四、数据爬虫分析五、项目架构思维导图六、项目UI系统注册登录界面各省份热门城市分析城市热…

FastReport分组后半页空白问题解决办法

在使用FastReport进行分组后&#xff0c;经常会出现‘半页空白’的现象。比如按颜色进行分组&#xff0c;有白、黑、红三个颜色&#xff0c;第一类白色信息展示完成后&#xff0c;紧接着的第二类黑色信息&#xff0c;会从新的一页开始展示&#xff0c;白色信息的末尾会出现半页…

前端开发个人简历范本(2024最新版-附模板)

前端开发工程师个人简历范本> 年龄 25岁 性别 男 毕业院校 XX大学 张三 学历 邮箱 leeywai-tools.cn 本科 专业 计算机科学与技术 个人梗概 拥有扎实的前端开发技能和丰富的实践经验 善于与团队合作&#xff0c;适应能力强&#xff0c;能够快速融入团队并贡献自…

C++八股学习心得.3

1.C 数组 C 支持数组数据结构&#xff0c;它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据&#xff0c;但它往往被认为是一系列相同类型的变量。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素&#xff0c;最高的地址对应最后一个…

word中设置上标后括号和数字没有上下对齐,解决

问题 word中设置上标后括号和数字没有上下对齐&#xff0c;如下图 原因 因为数字的括号是中文状态下输入的&#xff0c;数字是英文状态。用户需要将其改变成用英文状态下输入 解决办法 统一成英文状态&#xff1a;选中&#xff0c;设置字体为“半角” 如果上标来自参考文献…

CEC2017(Python):五种算法(DBO、HHO、RFO、SSA、PSO)求解CEC2017

一、5种算法简介 1、蜣螂优化算法DBO 2、哈里斯鹰优化算法HHO 3、红狐优化算法RFO 4、麻雀搜索算法SSA 5、粒子群优化算法PSO 二、CEC2017简介 参考文献&#xff1a; [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem d…

vue-cli项目优化gzip实践

背景&#xff1a;某天测试小妹气冲冲跑过来说你的网站首次打开平均16秒&#xff0c;慢得不行啊&#xff0c;空白时间太久&#xff0c;这样客户是不收货的&#xff0c;必须优化。谁叫我们是以测试驱动开发的&#xff0c;测试妹子的话等同与老板的命令。 空白是吧&#xff0c;我…

FindMy技术用于鼠标

鼠标是计算机的标准配置之一&#xff0c;其设计初衷是为了使计算机的操作更加简便快捷&#xff0c;减少用户在操作中的负担。用户可以通过移动鼠标&#xff0c;实现光标的精确移动&#xff0c;进而选择、拖拽、复制、粘贴等操作。这种操作方式&#xff0c;使得计算机的操作变得…

病急乱投医?大众「危机」

对于外资车企&#xff08;以及合资品牌&#xff09;来说&#xff0c;面对当下电动化、智能化市场白热化竞争的局面&#xff0c;显然有些「病急乱投医」的处境。 本周&#xff0c;大众汽车被曝出正在积极寻找合作伙伴&#xff0c;以帮助实现电动化转型的低成本目标&#xff0c;即…

【AIGC】金融号角吹响,现代技术引爆财富冲击波

在金融领域&#xff0c;创新力量的推动下&#xff0c;AIGC作为一位革命者崭露头角。其独特的理念和颠覆性的方法&#xff0c;将重新定义我们对健康的认知。它不仅改变了我们对金融的理解&#xff0c;更将引领我们走向一个全新的未来。AIGC的出现&#xff0c;无疑为金融界带来了…

Swagger 教程:从零开始学习Swagger

Swagger 是一个开源的 API 设计和文档工具&#xff0c;可以帮助全栈工程师更快、更简单地设计、构建、文档化和测试 RESTful API。本篇文章将为全栈工程师介绍 Swagger 的基础知识和使用方法&#xff0c;以及如何使用 Swagger 设计、文档化和测试 RESTful API。 一、Swagger 简…

03-SpringCloud-Ribbon负载均衡

Ribbon负载均衡 1.1.负载均衡原理 SpringCloud底层其实是利用了一个名为Ribbon的组件&#xff0c;来实现负载均衡功能的。 那么我们发出的请求明明是http://userservice/user/1&#xff0c;怎么变成了http://localhost:8081的呢&#xff1f; 1.2.源码跟踪 为什么我们只输入…

关于执行 roslaunch xxxxx yyyy.launch 后,没能进入 RViz 就卡死的问题

Problem 话不多说&#xff0c;先看图。 终端也会提示有报错&#xff08;可能是这种&#xff0c;但不确定&#xff09;&#xff1a; 这是发现问题所在之后&#xff0c;故意改错&#xff0c;然后尝试的。☝ Solution 总以为是显卡的问题&#xff0c;一直在研究怎么在 Ubuntu2…

pytorch04:网络模型创建

目录 一、模型创建过程1.1 以LeNet网络为例1.2 LeNet结构1.3 nn.Module 二、网络层容器(Containers)2.1 nn.Sequential2.1.1 常规方法实现2.1.2 OrderedDict方法实现 2.2 nn.ModuleList2.3 nn.ModuleDict2.4 三种容器构建总结 三、AlexNet网络构建 一、模型创建过程 1.1 以LeNe…

【力扣题解】P501-二叉搜索树中的众数-Java题解

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P501-二叉搜索树中的众数-Java题解&#x1f30f;题目描述&#x1f4a1;题解&#x1f…

文本表示模型简介

文本是一类非常重要的非结构化数据&#xff0c;如何表示文本数据一直是机器学习领域的一个重要研究方向。那么有哪些文本表示模型&#xff1f;以及它们各有什么优缺点&#xff1f; 1. 常见的文本表示模型 1.1. 词袋模型和N-gram模型 最基础的文本表示模型是词袋模型。顾名思…

Java最新技术介绍和分析 (202305)

说明&#xff1a;本文完成了2023年5月份&#xff0c;当时最新的LTS版本是Java17&#xff0c;本文在撰写时参考了美团技术团队和阿里JDK团队相关的文章&#xff0c;以及本文也引了用文章中的图片。在此表示感谢&#xff01; Java版本火车 相信老牌的Java开发者和爱好者把Java的…

计算机创新协会冬令营——暴力枚举题目01

首先是欢迎大家参加此次的冬令营&#xff0c;我们协会欢迎所有志同道合的同学们。话不多说&#xff0c;先来看看今天的题目吧。 题目 力扣题号&#xff1a;2351. 第一个出现两次的字母 注&#xff1a;下述题目和示例均来自力扣 题目 给你一个由小写英文字母组成的字符串 s &…

(ros2)控制gazebo移动的话题:

gazebo并不是ros2内自带的&#xff0c;是一个独立的软件&#xff0c;需要安装ros_gz功能被把ros2消息转换为gazebo可以识别的命令&#xff0c;并且把gazebo状态转换为ros2信息&#xff0c;所以可以认为ros_gz_bridge节点就是gazebo&#xff0c; 这个节点只接收2个话题&#xf…

Yarn的安装与使用详细介绍

什么是yarn Apache Hadoop YARN &#xff08;Yet Another Resource Negotiator&#xff0c;另一种资源协调者&#xff09;是一种新的 Hadoop 资源管理器&#xff0c;它是一个通用资源管理系统&#xff0c;可为上层应用提供统一的资源管理和调度&#xff0c;它的引入为集群在利用…