美文网首页
Vue 组件

Vue 组件

作者: BestFei | 来源:发表于2020-01-15 15:32 被阅读0次
<html>

<head>
    <meta charset="UTF-8">
    <title>v-bind</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
</head>

<body>
    <div id="app">
        {{message}} - {{ list }}
        <div>1、原身</div>
        <ul>
            <li v-for="item in list">
                <div>
                    <span v-if="item.del">{{item.title}}</span>
                    <span v-else style="text-decoration: line-through;">{{item.title}}</span>
                    <button v-show="!item.del">删除</button>
                </div>
            </li>
        </ul> 
        <div>2、组件</div> 
        <!-- 使用todo-item组件,将title和del变量来自于item  -->
        <ul>
            <todo-item v-for="item in list" :title="item.title" :del="item.del"></todo-item>
        </ul>
        <div>3、组件加强</div> 
        <todo-list></todo-list>


    </div>

    <script>
        //注册组件 todo-item
        //在template模版字符串中,使用两个变量title和del
        //在props属性声明中,声明两个变量title和del
        Vue.component('todo-item',{
            //属性声明
            props:{
                title: String,
                del: {
                    type: Boolean,
                    default: false
                }
            },
            //模版字符串
            template:`
                <li>
                    <div>
                        <span v-if="del">{{title}}</span>
                        <span v-else style="text-decoration: line-through;">{{title}}</span>
                        <button v-show="!del">删除</button>
                    </div>
                </li>`
            ,
            data : function (){
                return {}
            },
            methods : {

            }
        })

        Vue.component('todo-list',{
            template:`
            <ul>
                <todo-item v-for="item in list" :title="item.title" :del="item.del"></todo-item>
            </ul>
            `,
            data: function(){
                return {
                    list : [{
                        title: 'PH 002',
                        del : true
                    },{
                        title: 'ID 002',
                        del : false 
                    }]
                }
            }

        })


        // new Vue 一个实例
        var vm = new Vue({
            el:'#app',
            data:{
                message : 'test',
                list : [{
                    title: 'PH',
                    del : true
                },{
                    title: 'ID',
                    del : false 
                }]
            }
        })

    </script>
</body>

</html>

相关文章

网友评论

      本文标题:Vue 组件

      本文链接:https://www.haomeiwen.com/subject/kfmtzctx.html