需求是想要在浏览器端可以实现代码修改后显示出来

使用了 vue-codemirror 做代码的编写和修改

可以获取到修改的代码内容

类似jsrun或者codepen的效果

大概效果如图

才疏学浅,不太清楚如何用这三部分在右侧渲染出来,或者说是把三个部分写到一起渲染出来,类似于写一个vue的组件

求大佬指点

主要代码

运行

id="codemirror-html"

v-model="htmlCode"

:options="cmOptions"

@cursorActivity="onCmCursorActivityHtml"

@ready="onCmReadyHtml"

@focus="onCmFocusHtml"

@blur="onCmBlurHtml"

/>

id="codemirror-css"

v-model="cssCode"

:options="cmOptions"

@cursorActivity="onCmCursorActivityCss"

@ready="onCmReadyCss"

@focus="onCmFocusCss"

@blur="onCmBlurCss"

/>

id="codemirror-js"

v-model="jsCode"

:options="cmOptions"

@cursorActivity="onCmCursorActivityJs"

@ready="onCmReadyJs"

@focus="onCmFocusJs"

@blur="onCmBlurJs"

/>

import dedent from "dedent";

import { codemirror } from "vue-codemirror";

// base style

import "codemirror/lib/codemirror.css";

// theme css

import "codemirror/theme/base16-dark.css";

// language

import "codemirror/mode/vue/vue.js";

// active-line.js

import "codemirror/addon/selection/active-line.js";

// styleSelectedText

import "codemirror/addon/selection/mark-selection.js";

import "codemirror/addon/search/searchcursor.js";

// highlightSelectionMatches

import "codemirror/addon/scroll/annotatescrollbar.js";

import "codemirror/addon/search/matchesonscrollbar.js";

import "codemirror/addon/search/searchcursor.js";

import "codemirror/addon/search/match-highlighter.js";

// keyMap

import "codemirror/mode/clike/clike.js";

import "codemirror/addon/edit/matchbrackets.js";

import "codemirror/addon/comment/comment.js";

import "codemirror/addon/dialog/dialog.js";

import "codemirror/addon/dialog/dialog.css";

import "codemirror/addon/search/searchcursor.js";

import "codemirror/addon/search/search.js";

import "codemirror/keymap/sublime.js";

// foldGutter

import "codemirror/addon/fold/foldgutter.css";

import "codemirror/addon/fold/brace-fold.js";

import "codemirror/addon/fold/comment-fold.js";

import "codemirror/addon/fold/foldcode.js";

import "codemirror/addon/fold/foldgutter.js";

import "codemirror/addon/fold/indent-fold.js";

import "codemirror/addon/fold/markdown-fold.js";

import "codemirror/addon/fold/xml-fold.js";

let iframeDom = document.getElementById("iframeCode");

import Vue from "vue";

export default {

name: "Code",

props: {},

components: {

codemirror

},

data() {

return {

htmlCode: dedent`

{{ msg }}

默认按钮

主要按钮

成功按钮

信息按钮

警告按钮

危险按钮

`,

cssCode: dedent`

h1 {

margin: 40px 0 0;

}

`,

jsCode: dedent`

var mian = {

data: () {

return {

msg: 'hello world!'

}

}

}

var Ctor = Vue.extend(main)

new Ctor.$mount('#demo-code')

`,

cmOptions: {

tabSize: 4,

foldGutter: true,

styleActiveLine: true,

lineNumbers: true,

line: true,

keyMap: "sublime",

mode: "text/x-vue",

theme: "base16-dark"

}

};

},

computed: {},

watch: {},

methods: {

onCmCursorActivityHtml(codemirror) {},

onCmReadyHtml(codemirror) {},

onCmFocusHtml(codemirror) {},

onCmBlurHtml(codemirror) {},

onCmCursorActivityCss(codemirror) {},

onCmReadyCss(codemirror) {},

onCmFocusCss(codemirror) {},

onCmBlurCss(codemirror) {},

onCmCursorActivityJs(codemirror) {},

onCmReadyJs(codemirror) {},

onCmFocusJs(codemirror) {},

onCmBlurJs(codemirror) {},

runCode() {}

},

created() {},

mounted() {

this.runCode();

},

beforeDestroy() {}

};

.code-root {

width: 100%;

height: 100%;

display: flex;

.codes-box {

position: relative;

width: 50%;

height: 100%;

.run-btn {

position: absolute;

top: 0px;

right: 0px;

z-index: 999;

}

}

#iframeCode {

width: 50%;

height: 100%;

}

}

.vue-codemirror {

height: 33.33%;

.CodeMirror {

height: 100%;

}

}

vue 字符存在_vue中如何渲染字符串,字符串是组件类型的相关推荐

  1. vue 公用页面引用_vue中实现部分页面引入公共组件

    前言 我们可以把公共组件放到App.vue中,但是有时候我们希望某个页面不需要这写公共部分,那么需要怎么设置呢? 本文为大家介绍三种部分页面引入公共组件的方法. 方法一:利用子路由 创建一个layou ...

  2. vue 根据字符串生成表单_vue 中怎么渲染字符串形式的组件标签?

    html> {{ form }}

  3. axios vue 回调函数_vue中ajax请求与axios包完美处理

    这次给大家带来vue中ajax请求与axios包完美处理,vue中ajax请求与axios包处理的注意事项有哪些,下面就是实战案例,一起来看一下. 在vue中,经常会用到数据请求,常用的有:vue-r ...

  4. 找出两个字符串中所有共同的字符_面试中的两个字符串问题竟给我整懵了?!| 原力计划...

    作者 | 一路向维 责编 | 王晓曼 出品 | CSDN博客 昨天收到通知,今天有个面试,一家魔都中型电商公司,名字咱就不说了.内心顿时踌躇满志.跃跃欲试,晚上还翻看面试题,做准备. 到了目的地之后, ...

  5. axios vue 回调函数_vue中的ajax请求和axios包详解

    在vue中,经常会用到数据请求,常用的有:vue-resourse.axios 首先,引入axios CDN: npm: npm install axios 并在全局的js中引入:import axi ...

  6. vue阻止默认_vue中,阻止默认事件

    用vue的写法就是: id="freeinput" :rows="6" placeholder="请输入自由条件内容(json格式)" @f ...

  7. viewer vue 文档_vue中使用viewerjs

    项目创建 vue init webpack mytest001 安装viewerjs npm install viewerjs 删掉生成的项目里面的helloWord.vue 修改路由 创建一个ind ...

  8. 加载vue文件步骤_vue中.vue文件解析步骤详解

    这次给大家带来vue中.vue文件解析步骤详解,vue中.vue文件解析的注意事项有哪些,下面就是实战案例,一起来看一下. 我们平时写的 .vue 文件称为 SFC(Single File Compo ...

  9. echarts vue 柱状图实例_VUE中使用Echarts绘制柱状图

    在main.js中引入echarts import echarts from 'echarts' Vue.prototype.$echarts = echarts 在相应的vue中导入echarts ...

  10. vue数组刷新_Vue中数组更新后,页面没有动态刷新问题

    最近使用vue开发时,在一个函数中使用for循环,改变了页面中的数组,在函数中查看是修改成功的,但是页面中没有动态刷新. 在Vue的官方文档有提到这样一个注意事项: 数组变更检测注意事项: 由于 Ja ...

最新文章

  1. list中的linkedlist的用法
  2. 截图后粘贴或拖拽上传
  3. 职业生涯愿景计算机,职业生涯愿景
  4. tableau 实战练习数据源分享_小白入行数据分析师3年-工作内容复盘分享含代码(二)-数据库及Tableau篇介绍...
  5. 【算法分析与设计】内排序算法归纳
  6. selenium模拟登陆时截取验证码
  7. 判断一棵树是否是一颗完全二叉树☆
  8. ARP,这个隐匿在计网背后的男人
  9. 对比学习在NLP和多模态领域的应用
  10. SWFUpload多文件上传,文件大小增大问题
  11. iOS中实现plist中读取数据实现Cell的显示(字典转模型,实现按序分组)修改图片的尺寸...
  12. 判断是否已经注册过_你的手机号码一定绑定过很多软件,我们如何查询呢?
  13. python执行excel公式 语法_Python读取excel文件中带公式的值的实现
  14. 听说股票是暴利?花了一晚上时间,用Python写了个股票提醒系统
  15. 修改无线网密码后服务器拒绝访问,路由器重设密码怎么上不了网
  16. Ubuntu 16.04+CUDA8.0+Caffe+OpenCV3.1
  17. 海外跨境直播面临的难题及解决方案
  18. Storm DRPC 使用及访问C++ Bolt问题的解决方法
  19. VUE时间范围选择的组件
  20. trigger()方法

热门文章

  1. 【软件测试】自动化测试到底怎么做(单元测试自动化,接口自动化,UI自动化)
  2. 微博超话自动签到 php,微博超话自动签到器v1.0下载-我爱秘籍
  3. 查看mysql默认端口号和修改端口号
  4. vue项目前端页面模板,基于vue的前端模板
  5. Unity基础知识结构总结
  6. 【Scratch案例实操】Scratch萌宠运动会 scratch编程案例教学 scratch创意编程 少儿编程教案
  7. 傲腾服务器系统,英特尔傲腾:加速智能新常态,驱动存储新未来
  8. springboot进行微信公众号相关开发:(二)获取微信公众号access_token用以微信公众号各功能接口的调用
  9. DBUtil 的使用
  10. 项目验收文档模板(一)