如何动态插入Vue组件?

2024-03-21

许多面板(产品)以多行和多列的形式显示在一个页面中。我使用的是 Vue 2,面板是组件。现在,单击一个面板时,我想在该面板的行下方显示该面板的详细信息。这与谷歌图像搜索类似。

例如,在上图中,如果我单击 s1、s2 或 s3 中的任何一个,大面板将出现在 s3(该行的最后一个元素)之后。同样,单击 s4 或 s5,大面板出现在 s5 之后。

** 一行中的项目数将根据屏幕尺寸而变化。

如何找到该行的最后一个元素并在该元素后面插入一个组件?


这不会直接回答您的问题,但应该实现预期的行为。这里有一个jsfiddle https://jsfiddle.net/49gptnad/85/

模板:

<div id="vue-instance">
  <ul class="item-list">
    <li class="item" v-for="item in inventory" @click="dispalyDetails(item)">
      <div class="header">{{ item.name }} - ${{ item.price }}</div>
      <div v-if="item.displayed" class="details">
        <div class="details__inner">
          {{ item.details }}
        </div>
      </div>
    </li>
  </ul>
</div>

Vue:

var vm = new Vue({
  el: '#vue-instance',
  data: {
    inventory: [
      {name: 'MacBook Air', price: 1000, details: 'Lorem ipsum', displayed: false},
      {name: 'MacBook Pro', price: 1800, details: 'Lorem ipsum', displayed: false},
      {name: 'Lenovo W530', price: 1400, details: 'Lorem ipsum', displayed: false},
      {name: 'Acer Aspire One', price: 300, details: 'Lorem ipsum', displayed: false},
      {name: 'Aspire One', price: 700, details: 'Lorem ipsum', displayed: false}
    ]
  },
  methods: {
    deselectItems() {
        this.inventory.forEach((item) => {
        item.displayed = false;
      });
    },
    dispalyDetails(item) {
        if (!item.displayed) {
        this.deselectItems();
      }

        item.displayed = !item.displayed;
    }
  }
});

Scss:

.item-list {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  width: 80%;
  margin: 0 auto;
}

.item {
  width: 33.33%; // adjust accordingly in mq
  box-sizing: border-box;
}

.header {
  box-sizing: border-box;
  padding: 10px;
}

.details {
  border: 1px solid red;
  min-height: 200px;
}

.details__inner {
  position: absolute;
  left: 0;
  width: 100%;
  min-height: 200px;
  border: 1px solid green;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何动态插入Vue组件? 的相关文章

随机推荐

  • MATLAB 中不使用 for 循环的多个数组的交集

    我总是被告知 在 MATLAB 中几乎所有的 for 循环都可以省略 而且它们通常会减慢进程 那么这里有办法做到这一点吗 我有一个元胞数组 tsCell tsCell存储不同长度的时间数组 我想为所有时间数组找到一个相交的时间数组 Inte
  • Twig 数组访问

    我正在尝试打印传递给树枝模板的变量的值 我正在使用这段代码 naziv 0 索引为 0 因为传递的数组只有一个元素 提到的代码会产生以下错误 具有键 title 的数组的键 0 不存在于 但是当我像这样使用 for 循环时 for key
  • Proguard (R8) 混淆自定义视图名称

    我在我的应用程序中使用 R8 并且有几个自定义视图 在 xml 布局中引用 但它们的名称根本没有混淆 有什么办法可以实现这一点吗 我正在使用标准 Gradle 规则 release minifyEnabled true shrinkReso
  • 常规语言的最小泵送长度

    如何计算正则语言的最小泵送长度 例如 如果我有 0001 则最小泵送长度应为 4 即 000 无法泵送 为什么会这样呢 它将小于或等于该语言的最小 DFA 中的状态数减一 因此 将正则表达式转换为 DFA 最小化它 并对状态进行计数 对于你
  • 如何将 Git 子模块与 Composer 加载的库一起使用?

    我有一个 Zend Framework 2 应用程序 它包含一些包含业务逻辑的库代码和一些其他实用程序 这些代码对于稍后创建的其他应用程序来说是通用的 我的目的是使用 Composer 跨项目共享它 问题是 我该如何正确地做到这一点并简化开
  • Visual Studio 2010 中的自动源文件前导码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想配置我的 VS2010 以便每次创建新的源文件时 都包含一个注释序言 将包含许可证 我们迫切需要的
  • 如何从我的 URL 中隐藏“cgi-bin”、“.py”等?

    全新的网页设计 使用 python 让 Apache 启动并运行 测试 python 脚本在 cgi bin 目录中工作 当我显式输入 URL 时获得有效结果 cgi bin showenv py 但我不希望 URL 看起来那样 例如 在
  • #pragma mark 未列出第一个组名称

    我在用着 pragma mark将我的方法分组到某些类别下 但问题在于Xcode 4我的第一个类别没有显示 我的代码如下所示 interface MyClass NSObject pragma mark pragma mark Catego
  • 使用 Proguard 处理 Jackson 库后混淆时出错

    在使用 Proguard 搜索了与混淆问题相关的各种查询之后 我觉得我可能是only一个有这个特殊问题的人 因此 该帖子 我有一个相当标准的 Android 应用程序 它使用基于 JSON 的 REST 调用来交换数据 我利用Jackson
  • 在有关 Android 工具链的“flutter doctor”中显示错误

    显示有关 android 工具链的错误 Android toolchain develop for Android devices Android SDK version 29 0 3 Android license status unkn
  • 什么是 Ruby <=>(宇宙飞船)运算符?

    什么是红宝石 lt gt 宇宙飞船 操作员 该运算符是否由其他语言实现 The 宇宙飞船操作员 https ruby doc org core 3 0 0 Comparable html将返回1 0 or 1取决于左参数相对于右参数的值 a
  • Qt 且没有 moc_*.cpp 文件

    我正在开发一个简单的 Qt 4 应用程序并制作自己的对话框 我子类化了QDialog 插入Q OBJECT类声明块中的宏 并且 我明白了 链接器错误 未定义对 MyDialog vtable 的引用 并且没有 moc MyDialog cp
  • django-mssql 无法在 Apache 中使用 mod_wsgi 工作,但在开发服务器中工作正常

    我有一个 Django 应用程序 使用 django mssql 与 SQL Server 进行通信 这在开发服务器 runserver 中工作得很好 但在 Apache mod wsgi 下 我在尝试查找确实存在的 dll 时遇到了与它相
  • 在 UWP 中创建文件和文件夹

    我查看了很多 stackoverflow 帖子和文章 但仍然无法在 UWP 中创建文件 在 WPF 中这确实很容易 但 UWP 的工作方式有所不同 我在清单文件中添加了以下内容
  • 数据库独立的行级安全解决方案

    有人知道 Java C 数据库独立授权库吗 该库应支持跨公司组织结构的读 写 删除 插入操作 像这样的东西 用户可以查看所有文档 用户可以输入分配给他的单位的新文档 用户可以更改分配给他的单位和所有下属单位的所有文档 用户可以删除分配给他的
  • 计算存储过程的结果

    我有一个返回 ID 名称 描述的存储过程 并且不接受任何输入参数 但是 我对得到多少结果感兴趣 我期待这样的工作 SELECT COUNT FROM EXEC MyStoredProcedure 但我在 Sql Server Managem
  • LVDiff 在 Git 中不起作用

    我正在尝试从元差异套件中获取 lvdiff 以与 Git 一起使用 我的 gitconfig 看起来像这样 gui recentrepo C Users Tanner Desktop FIRST 2010 Beta Java LoganRo
  • GPS定位无服务

    我是一名新开发人员 有一个简单的问题 我已经四处搜索 但尚未找到明确的答案 简而言之 我正在开发一个需要能够使用 GPS 的应用程序 然而 诀窍是我想使用 GPS 来获取手机的位置 即使它们没有运营商服务 话虽如此 我有两个问题 是否可以通
  • 未经授权暴露hangfire

    有没有办法在 IIS 中公开 Hangfire 而无需配置授权 在这种特定情况下 仪表板应该打开 但在访问它时 不是在调试中 它会返回 401 代码 我认为你应该能够编写一个自定义实现IDashboardAuthorizationFilte
  • 如何动态插入Vue组件?

    许多面板 产品 以多行和多列的形式显示在一个页面中 我使用的是 Vue 2 面板是组件 现在 单击一个面板时 我想在该面板的行下方显示该面板的详细信息 这与谷歌图像搜索类似 例如 在上图中 如果我单击 s1 s2 或 s3 中的任何一个 大