【前端】VUE 在线运行 模拟器 通过字符串动态渲染页面 可以灵活使用

news2024/12/29 8:15:37

【前端】VUE2 在线运行 模拟器 通过字符串动态渲染页面 可以灵活使用

<template>
  <div>

    <!--      这里是动态组件-->
    <component :is="component"></component>
    <!--      这里是动态组件-->


    <br />
    <br />
    <br />
    可以理解为是一个vue模拟器 虚拟机
    以上是渲染的内容, 修改以下内容会实时动态渲染上边的组件  vue代码中怎么写 这里就怎么写 当成编辑器
    这里用的是https://1x.antdv.com/components/input-cn/ UI库   VUE2
    <p>模板内容: template 中的内容</p>
    <a-textarea  v-model="templateStr" :rows="15" />
    <p>data内容:</p>
    <a-textarea v-model="dataStr" :rows="15" />
    <p>methods内容:</p>
    <a-textarea v-model="methodsStr" :rows="15" />
    <p>other 其他内容:</p>
    <a-textarea v-model="otherStr" :rows="15" />


  </div>
</template>

<script>

//动态模板中 使用到的组件 需要提前引入
/**
 * 然后使用 components
 *  components: {
 *           'a-progress': AProgress, // 在动态组件中注册组件
 *         },
 */
import Vue from 'vue';

//这里如果之前全局引用过 则不用再引用
import Antd from 'ant-design-vue';
//这里如果之前全局引用过 则不用再引用
import 'ant-design-vue/dist/antd.css';

Vue.use(Antd);

export default {
  data() {
    return {
      templateStr: `
        <div>
          <h1>{{消息内容}}</h1>
          <a-button @click="changeMessage">点击改变消息内容</a-button>
            <a-progress :percent="30" />
            <a-progress :percent="50" status="active" />
            <a-progress :percent="70" status="exception" />
            <a-progress :percent="100" />
            <a-progress :percent="50" :show-info="false" />
          </div>
      `,
      dataStr: `
        {
          消息内容: 'Hello from templateString!'
        }
      `,
      methodsStr: `
        {
            /**
             * 改变消息内容
             */
            async changeMessage() {
              // alert(1111)
              // 动态导入 AProgress 组件  这里是不行的, 必须在上层VUE中引入组件 然后通过 components的方式引入
              // const AProgress = await import('ant-design-vue/lib/progress');
              this.消息内容 = '我是改变之后的消息' + new Date();
            },
            // 可以在这里添加更多的方法
         }
      `,
      /**
       * 其他内容 例如
       *
       *  created () {
       *     this.createDynamicComponent()
       *   },
       *   watch: {
       *
       *   }
       *
       */
      otherStr: `
        {

        }
      `,
      component: null
    };
  },
  created () {
    this.createDynamicComponent()
  },
  /**
   * 监听
   */
  watch: {
    templateStr(newStr) {
      this.createDynamicComponent();
    },
    dataStr(newStr) {
      this.createDynamicComponent();
    },
    methodsStr(newStr) {
      this.createDynamicComponent();
    },
  },
  methods: {
    /**
     * 创建动态组件
     * @returns {any}
     */
    async createDynamicComponent() {

      // 动态导入 AProgress 组件
      const AProgress = await import('ant-design-vue/lib/progress');

        //动态解析data字符串
        let tdata = eval('(' + this.dataStr + ')');
        let tMethods = eval('(' + this.methodsStr + ')');
        let tOther = eval('(' + this.otherStr + ')');

        // 使用 Vue.component 创建动态组件
        this.component = Vue.component('dynamic-component', {
          //动态解析模板内容
          template: this.templateStr,
          data(){
            //注入data数据
            return tdata
          },
          /**
           * 引入组件
           */
          components: {
            'a-progress': AProgress.default, // 在动态组件中注册组件
          },
          methods: tMethods,
          ...tOther
      });


    },
  }
};
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2061728.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【源码+文档+调试讲解】学院网站

摘 要 使用旧方法对冀中工程技师学院网站的信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在冀中工程技师学院网站的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。这次…

序列建模之循环和递归网络 - 长短期记忆和其他门控RNN篇

序言 在序列建模的广阔领域中&#xff0c;循环神经网络&#xff08; RNN \text{RNN} RNN&#xff09;以其独特的能力在处理可变长度序列数据上展现出了巨大的潜力。然而&#xff0c;传统的 RNN \text{RNN} RNN在处理长期依赖问题时&#xff0c;往往面临着梯度消失或爆炸的困境…

xss靶场 pwnfunction WW3

目录 代码 代码分析 payload构造 结果 代码 <div><h4>Meme Code</h4><textarea class"form-control" id"meme-code" rows"4"></textarea><div id"notify"></div> </div><scri…

UIAbility组件间的交互

一、Want 是UIAbility组件间交互载体。 Want启动UIAbility组件的两种方式&#xff1a; 1、显示Want启动 启动某个明确UIAbility组件时使用&#xff1b;需要在Want参数中设置启动的应用包名和UIAbility组件名。 2、隐式Want启动 需要使用某个应用的能力&#xff0c;不关心提供能…

在VBA中调用Adobe Acrobat或Reader的命令行工具,实现PDF自动打印 (‾◡◝)

在VBA&#xff08;Visual Basic for Applications&#xff09;中自动打印PDF文件通常不直接支持&#xff0c;因为VBA本身是针对Microsoft Office应用程序&#xff08;如Excel、Word和PowerPoint等&#xff09;的编程语言&#xff0c;并不直接处理PDF文件。但是&#xff0c;你可…

【JAVA多线程】CompletableFuture原理剖析

前文讲解了completablefuture的使用&#xff0c;本文将剖析其核心原理&#xff0c;前文连接&#xff1a; 【JAVA多线程】Future&#xff0c;专为异步编程而生_java future异步编程-CSDN博客 目录 1.任务组成任务链 2.默认使用ForkjoinPool作为线程池 3.任务是被串行执行的…

人工智能在Facebook的角色:创新与挑战并存

人工智能&#xff08;AI&#xff09;已经成为推动科技进步的重要力量&#xff0c;而在社交媒体领域&#xff0c;Facebook则是将AI技术广泛应用的先锋。Facebook通过AI来改善用户体验、提高内容质量以及优化广告投放&#xff0c;极大地提升了平台的功能与价值。然而&#xff0c;…

近年国际重大网络安全事件深度剖析:安全之路任重道远

引言 在当今数字化时代&#xff0c;网络安全已成为全球关注的焦点。随着信息技术的飞速发展&#xff0c;网络攻击的手段和规模也在不断升级&#xff0c;给个人、企业和国家带来了巨大的威胁。本文将盘点近年来国际上发生的重大网络安全事件&#xff0c;分析其影响和教训&#…

GPT-4o微调功能现已上线

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

图的应用

一、最小生成树 1&#xff09;Prim算法&#xff08;加点&#xff09; 2&#xff09;Kruskal算法&#xff08;加边&#xff09; 二、最短路径 1&#xff09;Dijkstra算法 2&#xff09;Floyd算法 三、拓扑排序 1&#xff09;AOV 拓扑序列不唯一 2)AOE&#xff08;关键路径&#…

实现Bezier样条曲线

1.给出n1 个控制点pk(xk,yk,zk),这里k可取值0-n,多项式函数公式如下 获取的单个点的代码 void zmBezier::getPoint(float u, double p[3]) {int n m_count - 1;double x 0, y 0, z 0;for(int k 0; k < n; k){x m_ctrlPoints[k][0] * BEZ_k_n(n, k, u);y m_ctrlPoin…

Trades和Centertrack在windows上配置

直接说结论好了,小虎在windows配了一个星期失败了,结果是双系统在linux下配置成功。 成功环境 Successful systems info: CUDA 11.4 CUDA driver 470.63.01 python 3.6.13 GCC 7.5.0 pytroch 1.9.0 compilation tools, release 11.4, V11.4.48成功记录

关于AR在医疗领域创新应用

AR技术在医疗领域创新应用&#xff0c;旨在展示AR技术如何为医疗行业带来革命性的变化&#xff0c;我们可以从以下几个方面入手&#xff1a; 一、引言 随着科技的飞速发展&#xff0c;增强现实&#xff08;AR&#xff09;技术正逐步渗透到医疗领域的各个环节&#xff0c;为患…

云手机在亚马逊店铺运营中能发挥什么作用

亚马逊作为全球领先的电商平台&#xff0c;汇聚了庞大的用户群体和交易规模&#xff0c;如何有效吸引流量成为亚马逊店铺经营者面临的难题。而云手机作为一种前沿的技术工具&#xff0c;为亚马逊店铺引流带来了全新的解决方案。本文将深入探讨云手机在亚马逊店铺引流中的关键作…

JVM类加载机制—JVM类加载过程

一、概述 代码编译后&#xff0c;就会生成JVM&#xff08;Java虚拟机&#xff09;能够识别的二进制字节流文件&#xff08;*.class&#xff09;。而JVM把Class文件中的类描述数据从文件加载到内存&#xff0c;并对数据进行校验、转换解析、初始化&#xff0c;使这些数据最终成…

数据结构--图(笔记)

文章目录 1. 概念2. 分类无向图有向图循环图连通图 3. 应用4. 操作(CRUD)5. 图常见的数据结构邻接表邻接矩阵关联矩阵关联矩阵与邻接矩阵 6. 内容出处 1. 概念 ① 图&#xff1a;在计算机科学中&#xff0c;图&#xff08;英语&#xff1a;graph&#xff09;是一种抽象数据类型…

36. 有效的数独【 力扣(LeetCode) 】

一、题目描述 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图…

2-72 基于matlab的平稳小波变换进行多聚焦图像融合

基于matlab的平稳小波变换进行多聚焦图像融合&#xff0c;获得一副清晰的图像&#xff0c;带有一副示例图像&#xff0c;实验效果好。SWT级平稳小波变换&#xff0c;是一种多尺度、多方向、时频局部的图像稀疏表示方法&#xff0c;广泛运行图像处理领域&#xff0c;具有平移不变…

msxml*.dll 错误 ‘80072f7d‘ 安全频道支持出错 解决方案

诡异的 msxml6.dll错误 80072f7d安全频道支持出错&#xff0c;用 SSLTools.exe 修复的方法无效&#xff01;&#xff01;&#xff01; ’--------------------------------------------------------------- 有如下简要 ASP 代码&#xff0c;用于获取网页链接返回内容&#xf…

《图解设计模式》笔记(四)分开考虑

九、Bridge模式&#xff1a;将类的功能层次结构与实现层次结构分离 类的两个层次结构和作用 类的功能层次结构&#xff1a;希望增加新功能时 父类有基本功能&#xff0c;在子类中增加新功能 Something父类 …├─SomethingGood子类 想要再增加新功能 Something父类 …├─So…