Javascript 如果单击vue组件上的链接,如何使子组件仅运行?
我有两个组件 我的第一个组件像这样的父组件:Javascript 如果单击vue组件上的链接,如何使子组件仅运行?,javascript,vue.js,vuejs2,vue-component,vuex,Javascript,Vue.js,Vuejs2,Vue Component,Vuex,我有两个组件 我的第一个组件像这样的父组件: <template> <ul class="list-group"> <li v-for="item in invoices" class="list-group-item"> <div class="row"> ... <div class="col-md-7">
<template>
<ul class="list-group">
<li v-for="item in invoices" class="list-group-item">
<div class="row">
...
<div class="col-md-7">
...
<a href="javascript:"
class="toggle-show"
aria-expanded="false"
data-toggle="collapse"
:data-target="'#' + item.id"
@click="show(item.id)">
Show <span class="caret"></span>
</a>
</div>
</div>
<div class="collapse" :id="item.id">
<order-collapse/>
</div>
</li>
</ul>
</template>
<script>
import orderCollapse from './orderCollapse.vue'
export default {
...
components: {orderCollapse},
data() {
return {
invoices: [
{
id: 1,
...
},
{
id: 2,
...
},
{
id: 3,
...
}
]
}
},
methods: {
show(id) {
// orderCollapse executed if this method run
}
},
}
</script>
<template>
<table class="table table-bordered table-collapse">
<!-- this is used to display detail by id -->
</table>
</template>
<script>
export default {
name: 'order-collapse',
...
}
</script>
我的第二个组件子组件如下所示:
<template>
<ul class="list-group">
<li v-for="item in invoices" class="list-group-item">
<div class="row">
...
<div class="col-md-7">
...
<a href="javascript:"
class="toggle-show"
aria-expanded="false"
data-toggle="collapse"
:data-target="'#' + item.id"
@click="show(item.id)">
Show <span class="caret"></span>
</a>
</div>
</div>
<div class="collapse" :id="item.id">
<order-collapse/>
</div>
</li>
</ul>
</template>
<script>
import orderCollapse from './orderCollapse.vue'
export default {
...
components: {orderCollapse},
data() {
return {
invoices: [
{
id: 1,
...
},
{
id: 2,
...
},
{
id: 3,
...
}
]
}
},
methods: {
show(id) {
// orderCollapse executed if this method run
}
},
}
</script>
<template>
<table class="table table-bordered table-collapse">
<!-- this is used to display detail by id -->
</table>
</template>
<script>
export default {
name: 'order-collapse',
...
}
</script>
如果父组件已执行,子组件也会自动执行
如果父组件已执行,则子组件未执行
如果用户单击“显示链接”,我希望执行子组件
如何操作?如何创建一个属性displayedds来保存每个订单折叠的显示状态,然后使用v-if调节其显示: 演示: Vue.组件“顺序崩溃”{ 模板:oc, 名称:“订单崩溃”, 道具:['id'], 安装{ console.log'order-mountedforid',this.id; } }; 新Vue{ el:“应用程序”, 资料{ 返回{ displayedds:{}, 发票:[{id:1},{id:2},{id:3}] } }, 方法:{ 肖维德{ //如果此方法运行,则执行orderCollapse this.$setthis.displayedds,id,true; } }, } ... ... ID:{{ID}
伟大的多谢了,我再次需要你的帮助:看看这个: