Vue系列教程-15-component-组件化-全局组件-局部组件

全局组件:通过vue直接注册的。

const myTitle = Vue.extend({template:""});

局部组件:通过vue实例创建的组件(components),只有这个实例里可以用

let app = new Vue({el: '#app',components: {"my-footer": myFooter,}});

我是分割线


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="app">
        <!--3. 使用组件-->
        <my-title></my-title>
        <my-footer></my-footer>
    </div>
    <hr>
    <div id="app2">
        <!--全局组件,其他vue实例也可以调用-->
        <my-title></my-title>
        <my-footer>app的局部组件不显示</my-footer>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        //1.创建组件构造器
        const myTitle = Vue.extend({
            template: `
                <div>
                    <span>Title</span>
                    <span>User</span>
                </div>`
        });
        //1.创建组件构造器
        const myFooter = Vue.extend({
            template: `
                <div>
                    <span>Footer</span>
                </div>`
        });
        //2. 注册组件,通过Vue直接创建的组件及为全局组件,每个vue实例都可以用
        //局部组件:通过vue实例创建的组件(components),只有这个实例可以用
        Vue.component('my-title',myTitle);

        let app = new Vue({
            el: '#app',
            //局部组件
            components: {
                "my-footer": myFooter,
            }
        });
        let app2 = new Vue({
            el: '#app2',
        });
    </script>
</body>
</html>

我是分割线

前台效果:

Title

app的局部组件不显示
点赞

发表评论