前端vue中实现嵌入代码编辑器的详细代码

 更新时间:2024年07月30日 10:50:57   作者:张大炮er  
随着Web技术的不断发展,前端开发也正日新月异,下面这篇文章主要给大家介绍了关于前端vue中实现嵌入代码编辑器的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

最近遇到需求,需要将代码在前端进行展示编辑,但是直接在文本展示会出现代码不整齐情况,格式化就需要嵌入代码编辑器。

老规矩废话不多说,上代码!!!!!!!!!!!

一、使用 vue-prism-editor 插件实现

  • 安装
npm i prismjs vue-prism-editor -S
// 或者
cnpm i prismjs vue-prism-editor 
//或者
yarn add prismjs vue-prism-editor
  • 代码实现
<template>
  <div>
    <prism-editor class="my-editor height-300" v-model="code" :highlight="highlighter"
      :line-numbers="lineNumbers"></prism-editor>

      <div @click="handleLog"> HelloWorld</div>
  </div>
</template>

<script>
import { PrismEditor } from 'vue-prism-editor'
import 'vue-prism-editor/dist/prismeditor.min.css'
import { highlight, languages } from 'prismjs/components/prism-core'
import 'prismjs/components/prism-clike'
import 'prismjs/components/prism-javascript'
import 'prismjs/themes/prism-tomorrow.css'
export default {
  name: 'CodeEditor1',
  components: {
    PrismEditor
  },
  data: () => ({
    // 双向绑定编辑器内容值属性
    code: ``,
    // true为编辑模式, false只展示不可编辑
    lineNumbers: true
  }),
  methods: {
    highlighter(code) {
      return highlight(code, languages.js) //returns html
    },
    handleLog(){
      console.log(this.code);
    }
  }
}
</script>

<style lang="css" scoped>
/* required class */
.my-editor {
  background: #2d2d2d;
  color: #ccc;
  font-family: Fira code, Fira Mono, Consolas, Menlo, Courier, monospace;
  font-size: 14px;
  line-height: 1.5;
  padding: 5px;
}

/* optional */
.prism-editor__textarea:focus {
  outline: none;
}

/* not required: */
.height-300 {
  height: 1000px;
  width: 1000px;
}
</style>
  • 效果预览

二、使用 vue2-ace-editor 插件实现

  • 安装
npm i vue2-ace-editor -S
// 或者
cnpm i vue2-ace-editor -S
  • 代码实现
<template>
	<div class="codeEditBox">
		<editor v-model="code" @init="editorInit" @input='codeChange' lang="javascript" :options="editorOptions" theme="chrome"></editor>
	</div>
</template>
 
<script>
	import Editor from 'vue2-ace-editor'
	export default {
		name: 'CodeEditor',
		components: {
			Editor
		},
		data() {
			return {
                // 双向绑定的编辑器内容值属性
				code: 'console.log("Hello World");',
				editorOptions: {
					// 设置代码编辑器的样式
					enableBasicAutocompletion: true, //启用基本自动完成
					enableSnippets: true, // 启用代码段
					enableLiveAutocompletion: true, //启用实时自动完成
					tabSize: 2, //标签大小
					fontSize: 14, //设置字号
					showPrintMargin: false //去除编辑器里的竖线
				}
			}
		},
		methods: {
            // 编辑内容改变时触发
			codeChange(val) {
				val //console.log(val)
			},
			editorInit() {
				require('brace/theme/chrome')
				require('brace/ext/language_tools') //language extension prerequsite...
				require('brace/mode/yaml')
				require('brace/mode/json')
				require('brace/mode/less')
				require('brace/snippets/json')
				require('brace/mode/lua')
				require('brace/snippets/lua')
				require('brace/mode/javascript')
				require('brace/snippets/javascript')
			}
		}
	}
</script>
 
<style scoped>
	.codeEditBox {
		width: 100%;
		height: 200px;
	}
</style>
  • vue2-ace-editor相比于vue-prism-editor可以实现代码的提示功能
  • 效果预览

总结 

到此这篇关于前端vue中实现嵌入代码编辑器的文章就介绍到这了,更多相关前端vue嵌入代码编辑器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue项目打包后打开页面空白解决办法

    vue项目打包后打开页面空白解决办法

    这篇文章主要介绍了vue项目打包后打开空白解决办法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Vue中过滤器定义以及使用方法实例

    Vue中过滤器定义以及使用方法实例

    过滤器的功能是对要显示的数据进行格式化后再显示,其并没有改变原本的数据,只是产生新的对应的数据,下面这篇文章主要给大家介绍了关于Vue中过滤器定义以及使用方法的相关资料,需要的朋友可以参考下
    2022-11-11
  • Vue+ElementUI实现表单动态渲染、可视化配置的方法

    Vue+ElementUI实现表单动态渲染、可视化配置的方法

    这篇文章主要介绍了Vue+ElementUI实现表单动态渲染、可视化配置的方法,需要的朋友可以参考下
    2018-03-03
  • vue上传图片到oss的方法示例(图片带有删除功能)

    vue上传图片到oss的方法示例(图片带有删除功能)

    这篇文章主要介绍了vue上传图片到oss的方法示例(图片带有删除功能),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能

    uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能

    这篇文章主要介绍了uni-app自定义导航栏按钮|uniapp仿微信顶部导航条,需要的朋友可以参考下
    2019-11-11
  • Vue生命周期详解

    Vue生命周期详解

    这篇文章详细介绍了Vue的生命周期,文中通过代码示例介绍的非常详细。对大家的学习有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Vue中如何使用base64编码和解码

    Vue中如何使用base64编码和解码

    这篇文章主要介绍了Vue中如何使用base64编码和解码问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 教你如何使用VUE组件创建SpreadJS自定义单元格

    教你如何使用VUE组件创建SpreadJS自定义单元格

    这篇文章主要介绍了使用VUE组件创建SpreadJS自定义单元格的方法,通常我们使用组件的方式是,在实例化Vue对象之前,通过Vue.component方法来注册全局的组件,文中通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2022-01-01
  • vue的滚动条插件实现代码

    vue的滚动条插件实现代码

    这篇文章主要介绍了vue的滚动条插件实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • vue-cli系列之vue-cli-service整体架构浅析

    vue-cli系列之vue-cli-service整体架构浅析

    这篇文章主要介绍了vue-cli系列之vue-cli-service整体架构浅析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01

最新评论