vue如何实现点击,增加组件?

点击增加轮播图的按钮,可以实现增加一个浅蓝色的组件?
clipboard.png

阅读 16.5k
3 个回答
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
    <div class="container-fluid" id="app">
        <button type="button" class="btn" @click="add">add</button>
        <ul>
            <li v-for="item in items">
                <c1 :item="item"></c1>
                <button type="button" class="btn btn-danger btn-xs" @click="remove(item)">remove</button>
            </li>
        </ul>
        <div>{{ items }}</div>
    </div>

    <template id="c1">
        <input type="text" v-model="item.value" />
    </template>

    <script src="http://cdn.bootcss.com/vue/2.0.3/vue.min.js"></script>
</body>
</html>
<script>

    Vue.component('c1', {
        props: ['item'],
        template: '#c1'
    })

    var vm = new Vue({
        el: '#app',
        data() {
            return {
                items: []
            }
        },
        methods: {
            add() {
                this.items.push({
                    value: null
                })
            },
            remove(item) {
                var i = this.items.indexOf(item)
                this.items.splice(i, 1)
            }
        }
    })
</script>

你是指增加轮播这个组件还是在已经存在的轮播里增加图片,前者我一般用ref后者因为都是数据在轮播那个数据里插入一条就好了

组件里的内容放在data里,v-for="item in data"填充模板,新增删除的时候直接data里加减一条数据即可。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题