鍍金池/ 問答/HTML/ vue 如何在v-for中插入組件?

vue 如何在v-for中插入組件?

<template>
    <div>
        <ul>
            <template v-for="item in items">
                <li v-if="item.flag">
                    <!-- [已解決,如下]這里怎樣調(diào)用DemoModel組件? -->
                    <component :is="item.model"></component>
                </li>
                <li v-else >{{ item.text }}</li>
            </template>
        </ul>
    </div>
</template>

<script>
// DemoModel 這里只是例子,實(shí)際組件名不會(huì)是 1-n
import DemoModel1 from "./demo-model1";
// ...
import DemoModelN from "./demo-modeln";

export default {
    data() {
        return {
            items:[
                {
                    text: "item 1",
                    flag: false
                },
                // ...
                {
                    text: "item n",  // 假定 n > 100,請(qǐng)不要考慮手寫html
                    flag: false
                },
                {
                    text: "model 1",
                    flag: true,
                    model: DemoModel1
                },
                // ...
                {
                    text: "model n",
                    flag: true,
                    model: DemoModelN
                },
            ]
        }
    },
    components: {
        DemoModel1, 
        //...
        DemoModelN
    }
}
</script>

我現(xiàn)在需要?jiǎng)討B(tài)的創(chuàng)建組件,以上代碼為簡(jiǎn)化版本,請(qǐng)問該怎么實(shí)現(xiàn)呢?

回答
編輯回答
萌二代

<li v-if="item.flag">

 <DemoModel+index+1></DemoModel+index+1>

</li>

2017年8月6日 02:36
編輯回答
葬憶

component is 動(dòng)態(tài)組件了解一下:
https://cn.vuejs.org/v2/guide...

2018年7月23日 13:09