javascript - 如何使用 v-for 将不同的组件拉入 div?
问题描述
我正在尝试将不同的组件放入选项卡内容中https://codepen.io/iTaurus85/pen/KbrBEa
切换选项卡时,我需要从这些组件中获取内容。但是我只是收到一条短信。
我怎么解决这个问题?或者也许我选择了错误的方式来通过标签显示不同的页面?
<div id="app">
<v-content>
<v-layout row wrap class="tab-layout">
<v-toolbar color="cyan" dark tabs>
<v-toolbar-side-icon></v-toolbar-side-icon>
<v-toolbar-title>Page title</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>search</v-icon>
</v-btn>
<v-btn icon>
<v-icon>more_vert</v-icon>
</v-btn>
<v-tabs
slot="extension"
v-model="tab"
color="cyan"
align-with-title
>
<v-tabs-slider color="yellow"></v-tabs-slider>
<v-tab v-for="item in levels" :key="item">
{{ item.name }}
</v-tab>
</v-tabs>
</v-toolbar>
<v-tabs-items v-model="tab">
<v-tab-item v-for="item in levels" :key="item">
<v-card flat>
{{ item.content }}
</v-card>
</v-tab-item>
</v-tabs-items>
</v-layout>
</v-content>
</div>
new Vue({
el: '#app',
// components:{
// intro,
// Elementary,
// },
data () {
return {
tab: null,
levels: [
{name:'Beginner', content: '<intro></intro>'},
{name:'Elementary', content: '<elementary></elementary>'},
{name:'Pre-Intermediate', content: 'Pre-Intermediate'},
{name:'Intermediate', content: 'Intermediate'},
{name:'Upper-Intermediate', content: 'Upper-Intermediate'}
]
}
}
})
解决方案
您可以为每个选项卡的 + 组件使用is
(Vue :is) :v-for
<div v-for="item in items"><component :is="item.componentName"></component></div>
您的项目可能是这样的:
{componentName: 'Intermidiate', tasks: 100}
在 Vue 实例中,您还应该添加如下组件:
new Vuew({
components: {
Inetrmidiate,
}
})
最后一点 - 只需创建名为Intermidiate
.
推荐阅读
- android - 除了 ViewModel,片段和 Activity 之间的通用上下文相关代码在哪里保留?
- sdp - SDP 中的静态和动态有效负载类型是什么?它们之间有什么区别?
- c++ - '.' 之前的退出状态 1 预期的主表达式 令牌
- python - 熊猫:将日期时间时间线从一个数据帧强加到另一个数据帧
- javascript - Javascript 在带有参数的函数内声明全局变量
- python - 什么时候将内存分配给python中的变量?
- c - 尝试将数字从 .txt 写入二进制文件
- c++ - 使用来自函数的指针填充结构数组
- opengl-es - OpenGL ES3:没有为 packUnorm2x16 找到匹配的重载函数
- c# - 在 ASP.NET MVC 中过滤其他页面中的数据