全局注册和局部注册

调用Vue.component()注册组件时,组件的注册是全局的,这意味着该组件可以在任意Vue示例下使用。 如果不需要全局注册,或者是让组件使用在其它组件内,可以用选项对象的components属性实现局部注册。

以下为局部注册的方式:

<!DOCTYPE html>
<html>
    <body>
        <div id="app">
            <!-- 3. my-component只能在#app下使用-->
            <my-component></my-component>
        </div>
    </body>
    <script src="js/vue.js"></script>
    <script>
        // 1.创建一个组件构造器
        var myComponent = Vue.extend({
            template: '<div>This is my first component!</div>'
        })
        
        new Vue({
            el: '#app',
            components: {
                // 2. 将myComponent组件注册到Vue实例下
                'my-component' : myComponent
            }
        });
    </script>
</html>

由于my-component组件是注册在#app元素对应的Vue实例下的,所以它不能在其它Vue实例下使用。


<div id="app2">
    <!-- 不能使用my-component组件,因为my-component是一个局部组件,它属于#app-->
    <my-component></my-component>
</div>

<script>
    new Vue({
        el: '#app2'
    });
</script>

此时浏览器会提示以下错误。

img vue

//注册组件(全局 component)
Vue.component("my-component",{
    template:'<div>这是一个全局组件测试 </div>'
});
new Vue({
    el:"#app5"
})

//(局部components)

new Vue({
    el:"#app6",
    components:{
        'test-component':{
            template:"<div>这是一个局部的组件测试</div>"
        }
    }
});

© 2016, Content By BEGINNER