VueJS - 单击时交换组件

2024-01-09

在我的应用程序中,我有很多按钮。当我按下按钮时,我想加载一个模板(替换所选按钮):

模板:

Vue.component('component-1', {...});
Vue.component('component-2', {...});

Buttons:

<div id="toReplace">
  <button>Button1</button>
  <button>Button2</button>
</div>

在这种情况下,当我按Button1div 的内容toReplace应该component-1。 当然,每个组件都应该有一个“关闭”按钮,它将再次显示按钮(简而言之,divtoReplace)按时。


您需要绑定一个变量:is财产。并在单击按钮时更改此变量。此外,您还需要将其与一些v-show健康)状况。就像这样:

<div id="toReplace">
    <div :is="currentComponent"></div>
    <div v-show="!currentComponent" v-for="component in componentsArray">
      <button @click="swapComponent(component)">{{component}}</button>
    </div>
</div>
<button @click="swapComponent(null)">Close</button>
new Vue({
  el: 'body',
  data: {
    currentComponent: null,
    componentsArray: ['foo', 'bar']
  },
  components: {
    'foo': {
      template: '<h1>Foo component</h1>'
    },
    'bar': {
      template: '<h1>Bar component</h1>'
    }
  },
  methods: {
    swapComponent: function(component)
    {
      this.currentComponent = component;
    }
  }
});

这是一个简单的例子:

http://jsbin.com/miwuduliyu/edit?html,js,控制台,输出 http://jsbin.com/miwuduliyu/edit?html,js,console,output

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VueJS - 单击时交换组件 的相关文章

随机推荐

  • 如何使 data.frame 中的组长度相等?

    我有这个数据框 df lt data frame id c A A B B B C amount c 45 66 99 34 71 22 id amount A 45 A 66 B 99 B 34 B 71 C 22 我需要扩展它以便每个b
  • 消息框挂起

    我试图在按下 winforms 应用程序上的按钮时显示消息框 但 MessageBox 挂起并且从不返回值 private void btnApply Click object sender EventArgs e bool current
  • 使用 UIAutomation 禁用 iOS 模拟器的硬件键盘

    我正在使用 UIAutomation 在 iOS 模拟器中进行一些自动化测试 在 Xcode 6 中 iOS 模拟器的键盘行为改变 https stackoverflow com a 26004815 700471为了与真实设备类似 现在有
  • 如何编写多个条件if else语句mips

    我会像编写将 C 转换为 mips 汇编的逻辑 OR 语句一样编写逻辑 AND 语句吗 else if i x j y printf c 219 这就是我放的 bne reg1 t3 draw219 i x bne reg2 t4 draw
  • 确定 Java 中的二进制/文本文件类型?

    也就是说 您如何区分存档 jar rar 等 文件和文本 xml txt 与编码无关 文件 没有保证的方法 但这里有几种可能性 查找文件上的标头 不幸的是 标头是特定于文件的 因此虽然您可能能够发现它是 RAR 文件 但您不会得到更通用的答
  • 在没有 swarm 的情况下限制 Docker compose 中的可用主机资源

    我只是想在 docker compose 文件中限制某些 Docker 容器的资源 原因很简单 主机上运行着多个应用程序 服务 所以我想避免单个容器可以使用例如所有内存 这会损害其他容器 从我了解到的文档中 这可以通过使用来完成resour
  • 用于电子邮件和页面其他部分链接的 HTML 标签

    我正在写一个HTML页面 我的要求如下 HTML 页面包含一些电子邮件 ID 当单击这些电子邮件 ID 时 它应该打开 Outlook 的新页面 页面有某些部分 当单击该部分时 它应该到达受尊重的段落 部分 例如 单击链接转到 部分 提前致
  • 在 Eclipse 项目中查找方法调用

    我有一个包含方法 myMethod 的类 X 我想在当前工作区的所有项目中找到调用 myMethod 的位置 我无法使用任何搜索函数 因为有多个类带有 myMethod 而且它不是静态的 因此 我需要知道此类的对象的名称 如果不手动探索项目
  • Jquery AJAX:如何更改“成功”按钮的值?

    我在一页上有多个按钮 单击后 我跟踪按钮 ID 将按钮值发送到后端 php 代码 该代码通过更改数据库返回更新的值 我能够取回我需要的一切 除了 成功设置按钮值 这是我正在使用的代码 document ready function inpu
  • 表单提交后验证重置

    我有带有复选框的表单 我希望用户至少选择其中之一 一切正常 但重置表单后我无法隐藏验证消息 这种情况在docs https logaretm github io vee validate guide forms html programma
  • 多个应用程序可以访问 SQLite 数据库吗?

    我遇到了一些数据库锁 SQLite BUSY 麻烦 我担心 SQLite 不适合我 基本上 我的设置是一个 cronjob 它定期调用一些不引人注目的 Java 功能和 项目中的新功能 通过一个名为 Jetty Jackson Hibern
  • Boost.Python 模块中未定义的符号

    我正在尝试使用 Boost Python 为模板库的某个实例构建一个小型 Python 扩展 该库广泛使用 CGAL 库 它与 CMake 集成得相当好 因此我将其用于我的项目 这是我的模块的代码 python export cpp inc
  • R partykit::ctree 边缘上的偏移标签

    我正在与ctree我的数据集有一个创建节点的协变量 该协变量有足够的因子 并且它们的名称足够长 以至于它们在节点创建的边中相互重叠 我想找到一种方法来阻止这种重叠 我检查了其他问题 发现一个answer https stackoverflo
  • 将 Bootstrap 导航栏转换为 WordPress 菜单

    我知道网上有很多关于此的主题 但我发现它们非常复杂 基本上我想将 Bootstrap 导航菜单转换为 WordPress 菜单 假设我有默认的 Bootstrap 导航栏
  • Java 音频流(mp3spi lib),UnsupportedAudioFileException

    我看到了多个关于流 MP3 流 如 Icecast 的 Stack Overflow 问题 他们都说使用 MP3SPI 库 我就是这样 MP3SPI 用于允许支持audio mpeg哑剧类型 这就是我的 Icecast 流 我的类路径中正确
  • 如何使用后缀到上标格式化当前日期?

    我正在使用SimpleDateFormatter public static final DateFormat DATE FORMAT FULL FULL SPACES new SimpleDateFormat dd MMMM yyyy L
  • 以编程方式导航到 SwiftUI 中的新视图

    描述性示例 登录屏幕 用户点击 登录 按钮 执行请求 UI 显示等待指示器 然后在成功响应后我想自动将用户导航到下一个屏幕 如何在 SwiftUI 中实现这种自动转换 成功登录后 您可以将下一个视图替换为您的登录视图 例如 struct L
  • 在焦点元素上按下转义键时不会引发按键事件

    I want to know when the Esc key is pressed on an input element On Chrome 47 0 2526 106 m the Esc key removes the focus b
  • 将 Windows Phone 8 SDK 添加到 Visual Studio 2012

    我的互联网连接非常糟糕 并且我有 Windows Phone 8 SDK 文件 但没有安装文件 有没有办法将 Windows 8 SDK 添加到 Visual Studio 而无需下载安装文件 不明白你的意思 您需要安装现有的 Visual
  • VueJS - 单击时交换组件

    在我的应用程序中 我有很多按钮 当我按下按钮时 我想加载一个模板 替换所选按钮 模板 Vue component component 1 Vue component component 2 Buttons div div