vue 字符存在_vue中如何渲染字符串,字符串是组件类型的
需求是想要在浏览器端可以实现代码修改后显示出来
使用了 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中如何渲染字符串,字符串是组件类型的相关推荐
- vue 公用页面引用_vue中实现部分页面引入公共组件
前言 我们可以把公共组件放到App.vue中,但是有时候我们希望某个页面不需要这写公共部分,那么需要怎么设置呢? 本文为大家介绍三种部分页面引入公共组件的方法. 方法一:利用子路由 创建一个layou ...
- vue 根据字符串生成表单_vue 中怎么渲染字符串形式的组件标签?
html> {{ form }}
- axios vue 回调函数_vue中ajax请求与axios包完美处理
这次给大家带来vue中ajax请求与axios包完美处理,vue中ajax请求与axios包处理的注意事项有哪些,下面就是实战案例,一起来看一下. 在vue中,经常会用到数据请求,常用的有:vue-r ...
- 找出两个字符串中所有共同的字符_面试中的两个字符串问题竟给我整懵了?!| 原力计划...
作者 | 一路向维 责编 | 王晓曼 出品 | CSDN博客 昨天收到通知,今天有个面试,一家魔都中型电商公司,名字咱就不说了.内心顿时踌躇满志.跃跃欲试,晚上还翻看面试题,做准备. 到了目的地之后, ...
- axios vue 回调函数_vue中的ajax请求和axios包详解
在vue中,经常会用到数据请求,常用的有:vue-resourse.axios 首先,引入axios CDN: npm: npm install axios 并在全局的js中引入:import axi ...
- vue阻止默认_vue中,阻止默认事件
用vue的写法就是: id="freeinput" :rows="6" placeholder="请输入自由条件内容(json格式)" @f ...
- viewer vue 文档_vue中使用viewerjs
项目创建 vue init webpack mytest001 安装viewerjs npm install viewerjs 删掉生成的项目里面的helloWord.vue 修改路由 创建一个ind ...
- 加载vue文件步骤_vue中.vue文件解析步骤详解
这次给大家带来vue中.vue文件解析步骤详解,vue中.vue文件解析的注意事项有哪些,下面就是实战案例,一起来看一下. 我们平时写的 .vue 文件称为 SFC(Single File Compo ...
- echarts vue 柱状图实例_VUE中使用Echarts绘制柱状图
在main.js中引入echarts import echarts from 'echarts' Vue.prototype.$echarts = echarts 在相应的vue中导入echarts ...
- vue数组刷新_Vue中数组更新后,页面没有动态刷新问题
最近使用vue开发时,在一个函数中使用for循环,改变了页面中的数组,在函数中查看是修改成功的,但是页面中没有动态刷新. 在Vue的官方文档有提到这样一个注意事项: 数组变更检测注意事项: 由于 Ja ...
最新文章
- list中的linkedlist的用法
- 截图后粘贴或拖拽上传
- 职业生涯愿景计算机,职业生涯愿景
- tableau 实战练习数据源分享_小白入行数据分析师3年-工作内容复盘分享含代码(二)-数据库及Tableau篇介绍...
- 【算法分析与设计】内排序算法归纳
- selenium模拟登陆时截取验证码
- 判断一棵树是否是一颗完全二叉树☆
- ARP,这个隐匿在计网背后的男人
- 对比学习在NLP和多模态领域的应用
- SWFUpload多文件上传,文件大小增大问题
- iOS中实现plist中读取数据实现Cell的显示(字典转模型,实现按序分组)修改图片的尺寸...
- 判断是否已经注册过_你的手机号码一定绑定过很多软件,我们如何查询呢?
- python执行excel公式 语法_Python读取excel文件中带公式的值的实现
- 听说股票是暴利?花了一晚上时间,用Python写了个股票提醒系统
- 修改无线网密码后服务器拒绝访问,路由器重设密码怎么上不了网
- Ubuntu 16.04+CUDA8.0+Caffe+OpenCV3.1
- 海外跨境直播面临的难题及解决方案
- Storm DRPC 使用及访问C++ Bolt问题的解决方法
- VUE时间范围选择的组件
- trigger()方法
热门文章
- 【软件测试】自动化测试到底怎么做(单元测试自动化,接口自动化,UI自动化)
- 微博超话自动签到 php,微博超话自动签到器v1.0下载-我爱秘籍
- 查看mysql默认端口号和修改端口号
- vue项目前端页面模板,基于vue的前端模板
- Unity基础知识结构总结
- 【Scratch案例实操】Scratch萌宠运动会 scratch编程案例教学 scratch创意编程 少儿编程教案
- 傲腾服务器系统,英特尔傲腾:加速智能新常态,驱动存储新未来
- springboot进行微信公众号相关开发:(二)获取微信公众号access_token用以微信公众号各功能接口的调用
- DBUtil 的使用
- 项目验收文档模板(一)