如何使用 Vue 命名槽渲染静态内容列表?

2023-11-24

我无法弄清楚如何让以下内容发挥作用:

我的家长模板

<comp>
  <a href="#" slot="links">link 1</a>
  <a href="#" slot="links">link 2</a>
</comp>

和我的组件comp模板如下所示:

<ul class="comp">
  <li class="comp-item"><slot name="links"></slot></li>
</ul>

目前我所有的主播都指向那首单曲li标签(这是预期的) 但我希望能够生产多个li对于我插入的每个命名插槽,如下所示:

<ul class="comp">
  <li class="comp-item"><a href="#" slot="links">link 1</a></li>
  <li class="comp-item"><a href="#" slot="links">link 2</a></li>
</ul>

有没有什么方法可以在不使用作用域插槽的情况下实现我所需要的?因为我的内容是纯 HTML,所以我觉得没有必要将静态内容放入 prop 中来渲染它们。

据我所知,大多数 vue UI 框架都要求您为列表项使用另一个自定义组件,我觉得这个问题已经过时了。还有其他方法可以做到这一点吗?


这可以通过渲染函数轻松完成。

Vue.component("comp", {
  render(h){
    let links = this.$slots.links.map(l => h('li', {class: "comp-item"}, [l]))
    return h('ul', {class: 'comp'}, links)
  }
})

这是一个工作示例。

console.clear()

Vue.component("comp", {
  render(h){
    let links = this.$slots.links.map(l => h('li', {class: "comp-item"}, [l]))
    return h('ul', {class: 'comp'}, links)
  }
})

new Vue({
  el: "#app"
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.js"></script>
<div id="app">
  <comp>
    <a href="#" slot="links">link 1</a>
    <a href="#" slot="links">link 2</a>
  </comp>
</div>

或者借助用于渲染 vNode 的小型实用程序组件,您可以使用模板来完成此操作。

Vue.component("vnode", {
  functional: true,
  render(h, context){
    return context.props.node
  }
})

Vue.component("comp", {
  template: `
    <ul class="comp">
      <li class="comp-item" v-for="link in $slots.links"><vnode :node="link" /></li>
    </ul>
  `
})

new Vue({
  el: "#app"
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.js"></script>
<div id="app">
  <comp>
    <a href="#" slot="links">link 1</a>
    <a href="#" slot="links">link 2</a>
  </comp>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Vue 命名槽渲染静态内容列表? 的相关文章

  • 如何删除除任何特定 id 之外的元素

    假设有一个父 id 其中包含许多元素 我想删除除一个元素之外的所有元素 ex parent id children not id n remove
  • JavaScript 添加布尔值

    console log true true 2 console log typeof true true number console log isNaN true true false 为什么两个布尔类型相加会产生一个数字 我有点理解 如
  • Firebase,只得到新的孩子[重复]

    这个问题在这里已经有答案了 var firebase new Firebase firebaseRef on child added function snapshot 这将接收所有元素 有没有办法在创建新的 Firebase 引用时不接收
  • .push() 将多个对象放入 JavaScript 数组中返回“未定义”

    当我将项目添加到beats数组然后console log用户时 我得到了数组中正确的项目数 但是当我检查 length 时 我总是得到 1 尝试调用索引总是会给我 未定义 如下所示 Tom beats 1 我想我错过了一些明显的东西 但这让
  • 如何使用有角度的材料创建卡片网格?

    我正在尝试使用 ng repeat 创建每行三张卡片的网格 我有一个普通的 javascript 对象数组附加到范围 下面的代码将为每张卡创建一个新行 div div
  • 想要动态处理与分页相关的页码显示:ReactJS

    我有一些分页逻辑工作得很好 唯一的问题是我只能让它显示并固定数量的页面可供选择 现在我已经把它放到了 5 页 但我希望它能够根据总记录动态更改 假设我有 100 条记录 每页限制为 10 条 将有 10 页 现在我只能让它以这种方式显示 第
  • IntersectionObserver是否支持水平滚动观察?

    我制作了几个垂直滚动 IntersectionObserver 模块 但我对水平滚动感兴趣 根将是 div 观察目标将是 img 我想观察当 img 放大但 div 保持视口宽度时的变化 我什至不确定移动 Safari 是否会将缩放后的图片
  • JavaScript推送函数中的动态变量

    我在 JavaScript 中使用推送功能 var chartData for var i 0 i lt 3 i chartData push date new Date year s mon s date s hr s min s sec
  • 如何使用角度材料在具有可扩展行的表格中创建嵌套垫表

    我有以下数据 id c9d5ab1a subdomain wing domain aircraft part id c9d5ab1a info mimetype application json info dependent parent
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 使用 Google 日历源时如何禁用 FullCalendar 中的活动链接?

    我正在使用 FullCalendar 库从 Google 日历加载日历中的事件 不幸的是 事件添加到日历后 它们是可点击的 当您点击该活动时 您会自动重定向到 Google 日历页面以查看该特定活动 或者如果您有足够的访问权限 则可以直接对
  • LeafleteachLayer函数不会迭代所有Layer

    使用 GeoJSON 数据数组创建一些标记 getJSON GetLocationsServlet function data L geoJSON data onEachFeature onEachFeature addTo mymap G
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • Google Maps API (v3) 添加/更新标记

    编辑 它现在可以工作 但如果用户不允许或没有基于位置的服务 则不会加载 请参阅 jsfiddle 示例接受的答案评论 我已经浏览了一些教程和问题 但我无法安静地理解正在发生的事情 或者在这种情况下 没有发生 当用户单击链接时 我正在加载地图
  • 使用 Enzyme 测试 `React.createRef` api

    我想测试下面的类 它使用React createRef api 不过 快速搜索并没有发现任何这样做的例子 有人成功过吗 我该如何嘲笑裁判 理想情况下我想使用shallow class Main extends React Component
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容

随机推荐

  • 在 Prolog 中使用差异列表的上下文无关语法如何运作?

    我正在阅读有关 Prolog 中上下文无关语法的教程 他们在页面底部提到使用差异列表在 Prolog 中实现上下文无关语法 其中包括以下代码块 s X Z np X Y vp Y Z np X Z det X Y n Y Z vp X Z
  • 使用 ggplot 库中的 geom_path

    我有12个变量 M1 M2 M12 我为此计算了某个统计量x df data frame model factor paste M 1 28 sep levels paste M 1 28 sep x runif 28 1 1 05 lev
  • ios中如何将数据存储到NSCache中?

    我对 NSCache 很陌生 我有一个 API 调用 它会产生多个对象 如何将这些对象存储在 NSCache 中 以便我不需要再次调用 API NSCache 中可以存储多少数据 NSCache 中存储数据是否有特定限制 请帮我 看一眼文档
  • 如何使用 jQuery 防止用户更改页面

    我有一个页面 其中包含通过 ajaxSubmit 提交的表单 因此 无需更改页面 我的目标是 当用户尝试更改页面 甚至关闭浏览器 时 我询问他是否真的想退出页面而不发送表单 正如 gmail 所做的那样 例如 Gmail 通过类似 wind
  • 属性错误:“响应”对象没有属性“文本”

    page requests get url tree html fromstring page text 在第 2 行我得到 AttributeError Response object has no attribute text 我已导入
  • 关于不可变字符串的改变id

    一些关于id类型的对象str 在Python 2 7中 让我困惑 这str类型是不可变的 所以我希望一旦创建它 它将始终具有相同的id 我相信我的表述不太好 所以我将发布一个输入和输出序列的示例 gt gt gt id so 1406141
  • 转义百分号 DB2 SQL

    我正在尝试选择连续包含四个百分号的数据 如何转义百分号以便我的 LIKE 条件起作用 Thanks Use 使用转义字符子句 select from tbl where fld like escape 这将搜索包含以下内容的所有记录 中的字
  • 从 .ttf 生成 .afm [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在使用这个库从 PHP 生成 pdf 文件 http www fpdf org 不过 我目前正忙着添加新字体 特别是从 ttf 字体文件生成 afm 文件的步骤 我正在按照此处的
  • 如何在 Android 中按定义的时间间隔运行可运行线程?

    我开发了一个应用程序 用于在 Android 模拟器屏幕中按定义的时间间隔显示一些文本 我正在使用Handler班级 这是我的代码片段 handler new Handler Runnable r new Runnable public v
  • 不使用 ATL 实现 COM IDispatch

    我正在编写一个 Excel RTD 服务器实现 但我陷入了实现的 coclass 的样板中IDispatch 我无法访问 ATL 但我正在使用 ActiveQt 尽管我也对如何在原始 C 或 C 中执行此操作感兴趣 如何正确实施IDispa
  • Python:使用打印命令避免换行[重复]

    这个问题在这里已经有答案了 当我使用print命令 它打印我想要的任何内容 然后转到不同的行 例如 print this should be print on the same line 应该返回 这应该在同一行 但相反返回 这应该是在同一
  • 仅当 URL 具有某些参数时才显示引导程序模式

    有没有办法使用 Bootstrap 的模态功能来评估参数的 URL 并自动打开模态 例如 访问该网站的 URL 的访问者 example com没有看到模态 他们只看到常规网站 访问者通过 URL 访问该网站example com offe
  • Python 编程 - numpy polyfit 说 NAN

    我编写的非常简单的代码遇到了一些问题 我有 4 组数据 想要使用 numpy polyfit 生成多项式最佳拟合线 使用 Polyfit 时 其中 3 个列表会产生数字 但使用 Polyfit 时 第三个数据集会产生 NAN 下面是代码和打
  • 如何按字符串过滤pandas数据框?

    我有一个 pandas 数据框 我想按列中的特定单词 测试 进行过滤 我试过 df df col str contains test 但它返回一个空数据框 仅包含列名称 对于输出 我正在寻找一个包含所有包含单词 test 的行的数据框 我能
  • 函数名两边的括号是什么意思?

    在我的项目源文件之一中 我找到了这个 C 函数定义 int foo int bar return foo bar 注意 旁边没有星号foo 所以它不是函数指针 或者是吗 递归调用发生了什么 在没有任何预处理器的情况下 foo的签名相当于 i
  • 在 Pandas 中,如何将字符串转换为以毫秒为单位的日期时间对象?

    我的数据框中有一列事件的时间戳 看起来像 2016 06 10 18 58 25 675 最后 3 位数字是毫秒 是否有一种有效的方法将此列转换为 Pandas 数据时间类型 当我尝试时 pd to datetime 2016 06 10
  • 使用@EmbeddedId和@MapsId会导致插入NULL(违反NOT NULL约束)

    使用以下代码 Embeddable public class EmployeeId implements Serializable Column name company id private Long companyId Column n
  • Node.js 通过 HTTPS 提供服务时会切断文件

    我正在尝试使用 Node js 提供一些 JavaScript 文件 但出于某种原因 这些文件在传输过程中被切断 代码 httpsServer http createServer function req res var path url
  • ASP.NET MVC 中基于文档的安全性

    我已经了解 ASP NET MVC 中基于用户和角色的安全性 但现在我需要一些更细粒度的东西 假设我有一个文档列表 其中一些用户已获得授权 另一些则没有 每个文档在数据库的文档表中都有对应的记录 如果用户具有安全访问权限 则可以下载文档以供
  • 如何使用 Vue 命名槽渲染静态内容列表?

    我无法弄清楚如何让以下内容发挥作用 我的家长模板