vue.js - Vuejs中的条件a href
问题描述
我正在 VueJS 中呈现商店标题列表,其中一些具有 url 属性,而另一些则没有。如果标题有 url,我想添加 aa href 属性:
<div v-for="(store, index) in stores">
<span v-if="store.link"><a :href="store.link" target="_blank">{{ store.title }}</a></span>
<span v-else="store.link">{{ store.title }}</span>
</div>
这可行,但代码看起来重复。反正有没有进一步简化代码?
解决方案
您可以使用组件标签:
var app = new Vue({
el: '#app',
data () {
return {
stores: [
{title:'product1',link:'/products/222'},
{title:'product2'},
{title:'product3',link:'/products/333'},
{title:'product4'}
]
}
}
})
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<div v-for="(store, index) in stores">
<component :is="store.link?'a':'span'" :href="store.link || ''" target="_blank">{{store.title}}
</component>
</div>
</div>
推荐阅读
- multilingual-app-toolkit - Xamarin 表单中的翻译提供程序管理器问题
- typescript - React mobx 找不到注入的 store
- installation - 未经管理员许可安装 gfortran
- char - 如何在代表 \n 但 Word 无法识别为 \n 的 docx 中替换此不可打印字符类型?
- java - 匕首是否可以使构造函数重载?
- javascript - npm install 挂在“reify:tailwindcss:timing build:queue Completed in 141ms”
- selenium - 从 HTTP 事件流 Selenium 中提取数据
- firebase - 用于配置专用网络中的允许列表的 Firebase API 域?
- multithreading - 多线程中随着时间的推移性能严重下降:我错过了什么?
- docker - Docker Compose 没有看到命令?