javascript - Vue:获取组件列表
问题描述
我的单页网站有简单的组件结构:
<template>
<div id="app">
<header />
<section-about />
<section-warranty />
<section-advantages />
<section-service />
<section-review />
<footer />
<menu />
</div>
</template>
现在我想在菜单组件中列出所有网页块(文章部分)。
当然,我可以手动编写此列表,但我想知道是否可以解析我的所有组件以获取某些键,并从它们中生成列表。这样我的菜单列表将基于组件,并且如果我添加一些新的文章组件或删除一个组件,它将自动更新。
即Warranty.vue
组件:
<template>
<section class="article warranty">
...blah blah blah...
</section>
</template>
<script>
export default {
data() {
return {
article-key: 'warranty', // <-- key for parsing
article-title: 'Warranty'
}
}
}
</script>
然后其他文章组件同理...
现在我的Menu.vue
组件:
<template>
<ul class="menu">
<li v-for="(article, index) in articles" :key="index">
<a href="#">{{ article.title }}</a>
</li>
</ul>
</template>
<script>
export default {
data() {
return {
articles: []
}
},
methods: {
parseComponents() {
this.articles = ... <-- for each Vue component if has article-key data then return
}
},
created() {
parseComponents()
}
}
</script>
还是应该将所有文章移到单独的文件夹中?这可以用 Vue 制作吗?
解决方案
如果你有所有这些值,this.articles
你可以这样做:
this.articles.map(el => {
if(el.article-key) {
return <MyComponent/>
}
})
推荐阅读
- python-3.x - 使用 BeautifulSoup 在 Youtube 趋势页面中搜索内容的 Web 抓取问题
- c++ - 我无法在 QOpenGLWidget 上绘画
- swift - 如何以编程方式创建选项卡栏项的操作
- javascript - 如何使用 v-for 在每个元素中呈现不同的 CSS 类
- webpack - Webpack - TypeError: this[MODULE_TYPE] is not a function at childCompiler.runAsChild
- java - 使用子类的值过滤类的流
- python-3.x - OpenCV Python Numpy:ValueError:要解压的值太多(预期为 2)
- php - 无法从 foreach 循环中输出变体
- c# - 无法将字符串从用户控件传递到位于 form1 的 flowlayoutpanel 中的richtextbox
- html - 使用 CSS 重复垂直线