vue-running在线运行 .vue文件

2 篇文章 0 订阅

vue-running

在线运行 .vue文件,支持element-uiiview

参考iview-run

用到了iview split面板分割组件vue-codemirror插件


实现方法

使用了vue的构造器extend与手动挂载$mount

  • 将代码进行切割(html,js,css)
  • extend 构造的实例通过$mount 渲染后,挂载到了组件唯一的一个节点上。(new Function,extend, $mount
  • 组件销毁时,手动销毁 extend 构造的实例及style(为便于销毁,添加随机 id 用于标识)。

代码功能

菜单功能

新增菜单功能,用于存储代码。

项目下的src/components/codeList下,存放自己的代码文件。会自动生成对应的目录,支持多层级目录。

├── element
│   ├── select1.js
│   ├── table-form.js
│   └── test
│       ├── rr
│       │   └── jj.js
│       └── testone.js
├── iview
│   └── test.js
├── index.js   //配置 
└── template.js 
WeChatdd68b41612a4a1c76ac3d21b40d81182

图标配置

src/components/codeList/index.js,可以添加图标

例子如下

let iconList = {
  template: "ivu-icon ivu-icon-logo-vimeo",
  "element/": "el-icon-eleme",
  "iview/": "ivu-icon ivu-icon-logo-vimeo"
};

Key:是路径。value:图标

为了使用两个ui组件的图标。

目录的图标使用的是<i :class="iconList[item.name]" />

所以iview的图标需要这样写ivu-icon ivu-icon-*******

问题记录

  • 1. 路由参数重含有/

想以文件的路径当路由参数(含有/,例如:a/b/c),但是路由解析不了。

所以,用了encodeURIComponent来解决。

  • 2. 解决嵌套使用codemirror时,点击才会显示的问题。
created() {
  setTimeout(() => {
    this.$refs.mycodemirror.codemirror.refresh();
  }, 1);
}
  • 3. github pages 路由问题

    https://xiaolannuoyi.github.io/vue-running/template刷新后是404。

    修改路由模式为hash

Github pages原生不支持单页面应用,没有为前端路由提供支持,并且为了安全,也不支持自定义后台配置。因此,我们没办法直接配置服务来fallback我们的应用。

参考链接

github地址

项目演示地址1

项目演示地址2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值