Ped*_* T. 2 javascript vue.js v-for
毫无疑问,vue 中的 v-for 标签很棒。
我现在有我想要的产生说明列表,如情况本。在这种情况下,我需要为数组中的每个元素生成两个DOM 元素:
<dl class="row">
<dt class="col-sm-3">Description lists</dt>
<dd class="col-sm-9">A description list is perfect for defining terms.</dd>
Run Code Online (Sandbox Code Playgroud)
有什么(或多或少优雅的)方法可以用 vue 做到这一点?
您可以使用<template>with 标签v-for来渲染一个包含多个元素的块
new Vue({
el: "#app",
data() {
return {
items: [
{ short: "1", long: "Long Description 1" },
{ short: "2", long: "Long Description 2" },
{ short: "3", long: "Long Description 3" },
{ short: "4", long: "Long Description 4" },
]
}
}
})Run Code Online (Sandbox Code Playgroud)
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<dl class="row">
<template v-for="data in items">
<dt class="col-sm-3">{{data.short}}</dt>
<dd class="col-sm-9">{{data.long}}</dd>
</template>
</dl>
</div>Run Code Online (Sandbox Code Playgroud)
HTML5 规范(根据 MDN)允许将元素包装<dt>在<dd>a 中<div>以用于微数据或样式目的。我推荐以下内容:
<dl class="row">
<div v-for="item in items" :key="item.id">
<dt class="col-sm-3">{{ item.key }}</dt>
<dd class="col-sm-9">{{ item.value }}</dd>
</div>
</dl>
Run Code Online (Sandbox Code Playgroud)
这也处理 v-for 需要 :key 属性。
| 归档时间: |
|
| 查看次数: |
2002 次 |
| 最近记录: |