组件的创建方式

 原始方式:使用Vue.extend()方式创建组件

  /*1.使用Vue.extend({
        template:"  HTML结构 "
    })  创建组件,接收一个返回值(创建组件对象)*/

    var com = Vue.extend({
       template:'<h1>这是使用Vue.extend方式创建的组件</h1>'
    });
    /*2.使用Vue.component('自定义组件名',创建组件对象)*/
   Vue.component('myCom',com);

注意:① . 自定义组件名使用驼峰命名时,在使用的过程中需要改成小写在前面加-

② . 无论是哪种方式创建出来的组件,组件的template属性指向的模板内容,必须有且只有一个根元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div class="app">
    <!--3使用方式:用自定义组件名作为元素标签-->
    <my-com></my-com>
</div>
<script src="../lib/vue-2.4.0.js"></script>
<script>
    /*1.使用Vue.extend({
        template:"  HTML结构 "
    })  创建组件,接收一个返回值(创建组件对象)*/
//    var com = Vue.extend({
//        template:'<h1>这是使用Vue.extend方式创建的组件</h1>'
//    });
    /*2.使用Vue.component('自定义组件名',创建组件对象)*/
    /*注意:自定义组件名使用驼峰命名时,在使用的过程中需要改成小写在前面加-*/
//    Vue.component('myCom',com);


    /*简写*/
    Vue.component('myCom',Vue.extend({
        template:'<h1>这是使用Vue.extend方式创建的组件</h1>'
    }));

    var vm = new Vue({
        el:'.app',
        data:{}
    })
</script>

</body>
</html>

字面量方式创建组件

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==


<div class="app">
    <my-com></my-com>
</div>
<script src="../lib/vue-2.4.0.js"></script>
<script>
/*无论是哪种方式创建出来的组件,组件的template属性指向的模板内容,必须有且只有一个根元素*/
    Vue.component('myCom',{
        template:'<div><h3>这是字面量的方式创建组件</h3><span>只能有一个根元素</span></div>'
    });

    var vm = new Vue({
        el:'.app',
        data:{}
    })
</script>

 传递一个标识创建组件


<div class="app">
    <my-com></my-com>
</div>

<!--在被Vue控制的外部写template模本HTML结构内容-->
<template id="temp">
    <div>
        <h1>这是使用外部标识传递给Vue提供的template标签创建的组件</h1>
        <h4>可以正常的写HTML代码了,good!</h4>
    </div>
</template>
<script src="../lib/vue-2.4.0.js"></script>
<script>

    Vue.component('myCom',{
        /*传递一个标识*/
        template:'#temp'
    });

    var vm = new Vue({
        el:'.app',
        data:{}
    })
</script>

定义私有组件


<div class="app">
    <login></login>
</div>
<template id="temp">
    <h1>这是一个私有的组件</h1>
</template>
<script src="../lib/vue-2.4.0.js"></script>
<script>
    var vm = new Vue({
        el:'.app',
        data:{},
        methods:{},
        /*定义私有的组件*/
        components:{
            login:{
                template:'#temp'
            }
        }
    })
</script>

 

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

猜你喜欢

转载自blog.csdn.net/weixin_42661283/article/details/87299136