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}
伟大的多谢了,我再次需要你的帮助:看看这个: