【发布时间】:2019-02-22 05:13:34
【问题描述】:
我是 Vue.js 的新手,我正在使用 Vue+Webpack。我需要每个链接在单击时都可以根据每个 id 显示数据,并与 show 属性匹配。我在.vue 文件中创建它。
export default {
el: 'skill',
props: {
skill: Object,
selectedId: Number
},
computed: {
show () {
return this.skill.id === this.selectedId
}
},
name: 'HomePage',
data () {
return {
show_skill: 1,
skills: [
{
id: 1,
title: 'css',
items: '<li>CSS 3</li><li>Sass/Less</li><li>CSS Animations</li><li>CSS Frameworks : Bootstrap, Zurb Foundation, Bulma, Material Design</li>',
show: true
},
{
id: 2,
title: 'js',
items: '<li>Vanilla JS</li><li>jQuery</li><li>Angular JS</li><li>Vue JS</li><li>Ajax</li><li>JSON</li>',
show: false
},
{
id: 3,
title: 'html',
items: '<li>HTML 5</li><li>SVG Animation</li><li>Canvas</li>',
show: false
},
{
id: 4,
title: 'general',
items: '<li>Responsive Web Design</li><li>Adaptive Web Design</li><li>Hybrid Mobile App</li><li>Wordpress Template</li><li>Email Template</li>',
show: false
},
{
id: 5,
title: 'tools',
items: '<li>Git</li><li>Gulp/Grunt</li><li>Npm</li><li>Webpack</li><li>Bower</li><li>Sketch</li><li>Adobe XD</li><li>Adobe Illustrator</li><li>Adobe Photoshop</li><li>InVision</li><li>Marvel</li>',
show: false
}
]
}
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>
<div class="c-skills">
<a href="#" class="active" @click="skill.show">CSS</a>
<a href="#">JS</a>
<a href="#">HTML</a>
<a href="#">Tools</a>
<a href="#">General</a>
</div>
<div class="c-desc" id="vn-skillset">
<skill :selected-id="selectedId" :post="skill" @click="selectedId = skill.id">
<h4 v-show="skill.show">{{ skill.title }}</h4>
<ul v-show="skill.show">{{ skill.items }}</ul>
</skill>
</div>
什么是 vue.esm?什么是 $mount? 我应该做哪些正确的事情来达到我的需要? 如何实现?
【问题讨论】:
-
你能制作一个代码框来模拟你的问题吗? codesandbox.io/s/vue
-
喜欢这个@A.Lau? codesandbox.io/s/k325km5lqr
标签: javascript arrays json vue.js vue-component