mls*_*lst 6 html javascript vue.js vuetify.js
我想在我的项目中使用 Vuetify 2.0,目前正在阅读有关v-stepper组件的信息,该组件用于通过编号步骤显示进度。
在提供的游乐场示例中,我看到他们正在使用<template>元素来包装v-stepper组件的内容。HTML 看起来像这样(注意:我删除了不必要的细节):
<v-stepper>
<template v-for="n in steps">
<v-stepper-content
:key="`${n}-content`"
:step="n"
>
</v-stepper-content>
</template>
</v-stepper>
Run Code Online (Sandbox Code Playgroud)
注意使用的<template>标签。它的目的是什么?我什么时候应该使用它而不是<v-stepper-content>直接将<v-stepper>?
我在 MDN 上阅读了一些关于element 的内容,但我不确定如何专门与 Vuetify 一起使用它(或者更一般地与 Vue.Js 或纯 HTML/CSS/JS 一起使用)。
<template>在v-for循环上下文中是一个组织项。它不会被浏览器呈现。它可以帮助处理更复杂的渲染情况,在这种情况下,您不想将自己限制在单个元素中
在大多数情况下,您有一个非常直接的项目映射,数组中的每个项目都有一个<li>元素。如果是这种情况,您不太可能使用它。
假设您要遍历对象数组,如果对象是按钮则渲染 v-btn,如果对象是图像则渲染 v-image。
没有模板...
<span v-for="item in items">
<v-btn v-if="item.isBtn"></v-btn>
<v-img v-else-if="item.isImg"></v-img>
</span>
Run Code Online (Sandbox Code Playgroud)
问题是每个项目都将被包裹在跨度中。
<span>
<v-btn/>
</span>
<span>
<v-img/>
</span>
<span>
<v-btn/>
</span>
Run Code Online (Sandbox Code Playgroud)
但是,如果您使用该template元素,则包装元素不再存在。
<template v-for="item in items">
<v-btn v-if="item.isBtn"></v-btn>
<v-img v-else-if="item.isImg"></v-img>
</template>
Run Code Online (Sandbox Code Playgroud)
你会得到...
<v-btn/>
<v-img/>
<v-btn/>
Run Code Online (Sandbox Code Playgroud)
您还可以让它在循环的一个实例中返回多个项目。
在https://vuejs.org/v2/guide/list.html#v-for-on-a-lt-template-gt的 vue 文档中, 它显示了每次迭代渲染多个项目的示例:
<ul>
<template v-for="item in items">
<li>{{ item.msg }}</li>
<li class="divider" role="presentation"></li>
</template>
</ul>
Run Code Online (Sandbox Code Playgroud)
在其他一些情况下,这可能会有所帮助,但不太可能是您每天都会遇到的情况。
<template>元素。它有助于在循环时组织代码块,而无需单个子元素我什么时候应该使用它而不是直接将 ?
由于垂直和水平步进器的结构不同,vuetify 作者在playground 中使用了它,以允许用户切换它。模板的第一级 ( <template v-if="vertical">) 用于确定下一级是将v-stepper-step元素呈现为垂直还是水平。第二层用于进行项目的迭代。
例子:
垂直(步骤和内容是兄弟):
<template>
<v-stepper v-model="e6" vertical>
<v-stepper-step :complete="e6 > 1" step="1">
Select an app
<small>Summarize if needed</small>
</v-stepper-step>
<v-stepper-content step="1">
<v-card color="grey lighten-1" class="mb-12" height="200px"></v-card>
<v-btn color="primary" @click="e6 = 2">Continue</v-btn>
<v-btn text>Cancel</v-btn>
</v-stepper-content>
<v-stepper-content step="2">...</v-stepper-content>
<v-stepper-step :complete="e6 > 3" step="3">...</v-stepper-step>
</v-stepper>
</template>
Run Code Online (Sandbox Code Playgroud)
水平(每一步是分开的):
<template>
<div>
<v-stepper>
<v-stepper-header>
<v-stepper-step step="1">Select campaign settings</v-stepper-step>
<v-divider></v-divider>
<v-stepper-step step="2">Create an ad group</v-stepper-step>
<v-divider></v-divider>
<v-stepper-step step="3">Create an ad</v-stepper-step>
</v-stepper-header>
</v-stepper>
<v-stepper value="2" class="mt-12">
...
</v-stepper>
<v-stepper value="3" class="mt-12">
...
</v-stepper>
</div>
</template>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2540 次 |
| 最近记录: |