1.0.6 • Published 3 years ago

vue-run-online v1.0.6

Weekly downloads
7
License
ISC
Repository
github
Last release
3 years ago

vue-run-online

vue-run-online 是一款能够在线编辑/预览代码效果的vue组件

前置说明

vue-run-online 是基于vue-fun-sfc组件进行自定义改造,在原来基础上增加了一些属性和可自定义配置项目,主要是为了配置自己自定义组件库而进行改造,非商业用途~

使用说明

安装

npm install vue-run-online

使用

  • 全局使用
import VueRunOnline from "vue-run-online";
 
Vue.use(VueRunOnline, { 
  cssLabs: ["https://unpkg.com/normalize.css@8.0.1/normalize.css"],
  jsLabs: ["https://cdn.jsdelivr.net/npm/element-ui@2.12.0/lib/index.js"], 
});
  • 局部使用
<script>
  import { VueRunOnline } from "vue-run-online";
 
  export default {
    components: { VueRunOnline }
  };
</script> 

传入说明

props

属性类型默认值属性描述可选值
codestring''传入的需要进行demo演示的代码
jsLabsArray|String' 'code执行所需要js资源
cssLabsArray|String' 'code执行所需要css
canEditBooleantrue是否可以编辑代码区域
comDescString''组件说明 展示在头部下面
hideAllBtn|Booleanfalse隐藏头部所有按钮
hideButtonsArray[]隐藏头部三个按钮组'reset','full','layout'
hideRightBoolean |false |隐藏右下角内容配置
rightLinkString' '右下角链接配置
rightTextString' '右下角链接文字配置
vueUrlstring''引入的Vue的版本,解决版本不同的问题 默认是https://cdn.jsdelivr.net/npm/vue@2.6.11
jsArray|String' 'code执行所需要css
cssArray|String' 'code执行所需要css
themeColorString'#409eff'代码演示主题效果颜色
themeBorderColorString'#eaeefb'代码演示主题边框色
rowBooleanfalse代码和演示效果的排列效果 true 左右排列 false上下排列
reverseBooleanfalse代码和演示效果上下排列时候 代码区和编辑区上下位置 false 编辑器在下, 展示区在上 true 编辑器在上, 展示区在 下
titleString''代码展示标题名称
heightString''代码展示高度
openBooleantrue是否自动打开编辑区域
isHideHeaderBooleanfalse是否隐藏头部

slots

提供了三个可以插槽功能

插槽名称描述
header头部插槽位置 页面头部中间部分 当hideAllBtn==true时,将会展示在右侧
desc组件说明部分 和comDesc字段渲染在一个位置
footer底部右下角说明部分 和其他的配置项目一起展示

demo示例

基本正常使用 可编辑状态

  <vue-run-online
          :js-labs="jsLabs"
        :css-labs="cssLabs"
        title="测试DEMO"
        :open="true"
        :code="code"
      >
      <div slot='header'>我是标题呀</div>
      <div slot="footer">我是底部的标签呀</div> 
      </vue-run-online>
<script>
 data() {
    return {
      exampleCode: exampleCode,
      codemirrorOption: codemirrorOption,
      jsLabs: ["https://cdn.jsdelivr.net/npm/element-ui@2.12.0/lib/index.js"],
      cssLabs: [
        "https://cdn.jsdelivr.net/npm/element-ui@2.12.0/lib/theme-chalk/index.css"
      ],
      code: `<template>
  <div>
    <h1>{{title}}</h1>
    <div><el-button type="primary" @click="handleClick">可以进行操作</el-button></div>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        title: "我是按钮"
      };
    },
    methods: {
      handleClick () {
        this.$message.success('')
      }
    }
  };
<\/script>

<style lang="scss">
  body {
    #box {
      color: #409EFF;
    }
  }
</style>`
    };
  }
</script>

image

预览demo

 <vue-run-online
        :hideButtons="['reset']"
        :js-labs="jsLabs"
        :css-labs="cssLabs"
        :open="true"
        :canEdit="false"
        :code="code3"
      >
        <div slot="header">我是标题呀</div>
        <div slot="desc">我是组件说明嘻嘻</div>
        <div slot="footer">我是底部的标签呀</div>
      </vue-run-online>
    //code
       code3: `<template>
  <div>
   我是一个静态的可预览的文件呀
  </div>
</template>`,

image

参考地址