Vue - 如何附加组件?

2024-04-28

我正在尝试创建一个按钮,一旦按下该按钮,就会向我的组件添加一个子组件。我的代码可以工作,只是 HTML 被解析为字符串,这是父组件:

<template>
  <div id="app">
    <li v-for="item in items">
      {{ item.component }}
    </li>
  </div>
</template>

<script>

export default {
  props:{},
  data(){
    return { 
      items: []
    }
  },
  mounted() {},
  computed: {},
  methods: {
    addItem(){
      this.items.push({component: '<testcomponent />'})
    }
  }
}
</script>

子组件非常基本:

<template>
  <div id="app">
    <h1>Testing</h1>
  </div>
</template>

所以我的代码的问题是,每次我按下按钮时,它都会将 HTML 解析为字符串,而不是每次加载子组件的新实例:'<testcomponent />'。我怎样才能解决这个问题?提前致谢!


您可以推送组件名称,然后使用<component :is="item.component"/> in the v-for如下:

const testcomponent = Vue.component('testcomponent', {
  template: '#testcomponent',
});

new Vue({
  el:"#app",
  components: { testcomponent },
  data() { return {  items: [] } },
  methods: {
    addItem() {
      this.items.push({ component: 'testcomponent' });
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<template id="testcomponent">
  <div><h1>Testing</h1></div>
</template>

<div id="app">
  <button @click="addItem">Add</button>
  <li v-for="item in items">
    <component :is="item.component"/>
  </li>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue - 如何附加组件? 的相关文章

随机推荐

  • 在 Silverlight 中克隆业务对象的最佳方法是什么?

    创建 DTO 克隆的最佳方法是什么 Silverlight 中没有 ICloneable 接口或 BinaryFormatter 类 反思是唯一的方法吗 这是我们为克隆编写的代码 这适用于 Silverlight 2 和 3 Public
  • CloudWatch:计算日志文件中特定字符串的出现次数

    我有包含特定弹簧模式的日志文件 这些字符串模式在每个日志事件中频繁出现 例如
  • Python 列联表

    作为我正在编写的项目的一部分 我正在生成很多很多列联表 工作流程是 获取具有连续 浮点 行的大型数据数组 并通过分箱将其转换为离散整数值 例如 结果行的值为 0 9 将两行切片为向量 X 和 Y 并生成列联表 https en wikipe
  • 终止进程树(C for Windows)

    以前曾有人问过这个问题 但我在代码中找不到明确的答案 我打开一个进程 ProcessA PID 为 1234 此进程打开一个子进程 ProcessAB PID 5678 完成后 我终止了 ProcessA 但 ProcessAB 仍然存在
  • Zendexpressive-php错误报告

    我正在尝试 zendexpressive 这是我的config autoload zend expressive global php当我尝试向将转到操作类的路径发出请求时 它返回错误页面 但我在 apache 错误日志中看不到任何 php
  • ggplot2 中的 date_minor_breaks

    我是初学者ggplot2 我无法使用date minor breaks在 x 轴上显示季度 刻度 这是我的代码 x lt c seq 1 12 time lt c 2010Q1 2010Q2 2010Q3 2010Q4 2011Q1 201
  • SceneDelegate 和 AppDelegate 之间的区别

    在我的 SwiftUI 项目中我看到AppDelegate文件以及SceneDelegate file 它们之间有什么区别 例如在方法之间SceneDelegate scene willConnectTo options 并在AppDele
  • Inno Setup 无法导入 DLL

    我没有运气将 Delphi DLL 导入 Inno Setup Unicode 该DLL有一个简单的过程 procedure Foo stdcall begin end exports Foo 该 DLL 包含在安装程序源中 并添加到文件列
  • 仅在 Azure Web 应用程序中从 FTP 下载文件失败

    我有一个非常基本的代码 可以从 FTP 服务器下载文本文件列表 foreach var fileUri in files try var ftpRequest FtpWebRequest FtpWebRequest Create fileU
  • WSO2 API 管理器 - 在商店中显示私有 IP

    我已经安装了 API 管理器 1 6 0 并运行了 API 管理器 但问题是商店内显示的 IP 地址是服务器的私有 IP 私有IP通过VPN访问 以下是在商店中显示为 生产 和 沙箱 URL 的 URL http 192 168 6 162
  • Internet Explorer 9、10 和 11 事件构造函数不起作用

    我正在创建一个事件 因此使用 DOM Event 构造函数 new Event change 这在现代浏览器中工作正常 但是在 Internet Explorer 9 10 和 11 中 它会失败并显示 Object doesn t sup
  • Android文件上传器与服务器端php

    我几个小时以来一直在寻找解决方案 但找不到任何解决方案 基本上 我想从我的 Android 设备上传文件到 http 网站 但是 我不知道如何做到这一点 我在设备上使用java 并且我想在服务器端使用PHP 我只想上传文件 而不是在服务器上
  • 如何使用按位运算根据另外两个字节来分配一个字节的特定位? (根据蒙版进行位混合)

    我有3个字节 一个字节决定了第 3 个字节的哪些位需要更改 1 表示位需要更改 0 表示不应发生更改 第 2 个字节决定变化的位分配为 1 还是 0 第三个字节是发生变化的地方 有没有办法使用按位运算符来实现此目的 如果是这样 怎么办 一个
  • 如何创建最小 8 个、最大 16 个、字母、数字且无空格的正则表达式?

    我正在尝试在 iOS 中使用正则表达式检查文本 下面是我的代码 我的正则表达式接受一个单词或数字 最少 8 个 最多 16 个数字或字母 if self validate txtPass text regex a zA Z0 9 NSLOG
  • 当列表只有一个元素时,CXF 返回对象而不是 js 数组

    我正在使用 CXF 来创建宁静的服务 其中一项服务返回一个字符串列表 当列表中有多个项目时 CXF 返回一个字符串数组 但当我只有一个元素时 它返回字符串而不是带有 json 的数组 对于一件物品 ImageResponse images
  • 通过反射判断类型是否为单例

    如何判断一个类型是否是单例 case object Foo case class Bar i Int def isSingleton A implicit t reflect ClassTag A Boolean assert isSing
  • pd.merge_asof 在第二次运行时失败,并显示“ValueError:左键必须排序”

    您好 我正在尝试合并最接近匹配的日期时间的两个数据集 我有开放事件和封闭事件的两个时间戳 merge asof 在开放日期运行良好 但返回 ValueError 左键必须排序 在第二个日期时间 我在这两种情况下都按相关的日期时间排序 第一个
  • 在主干/下划线模板中使用循环

    我有一个backbone js underscore js 模板 我将其输入到主干视图中进行渲染 视图传递一个包含数组的模型posts对象 我称之为post在模板中 Problem 当我尝试循环遍历数组的所有元素时posts 我收到一个错误
  • 如何重新安装最新的cmake版本?

    我想在Linux环境下安装cmake的最新版本 我安装了 cmake 3 5 版 但某些应用程序不支持 我尝试通过卸载当前版本来升级它 但是当我使用 sudo apt get install cmake 重新安装时 我重新安装了相同的版本
  • Vue - 如何附加组件?

    我正在尝试创建一个按钮 一旦按下该按钮 就会向我的组件添加一个子组件 我的代码可以工作 只是 HTML 被解析为字符串 这是父组件