zoukankan      html  css  js  c++  java
  • Vue2.0组件注册

    //全局注册:

    Vue.component("my-component",{
    template:'<div>A custom component!</div>'
    });

    /*交换位置会报错----创建组件必须在根实例化之前*/

    //创建根实例:

     new Vue({
     el:"#app"
     })

     ---------

    //局部注册:

    new Vue({
    el: "#app1",
    components: {
    // <my-zujian> 将只在父组件模板中可用
    'my-zujian': {
    template: '<div>我是局部组件</div>'
    }
    }
    });

    //html:

    <html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>vue2.0组件:</title>
        <script src="./vue.js"></script>
    </head>
    <body>
        <div>全局组件也必须应用在实例上,不然不显示;</div>
        <hr>
        <div id="app">
            <my-component></my-component>
    
        </div>
    
        <div id="app1">
            <my-zujian></my-zujian>
            <my-component></my-component>
        </div>
    </body>
    </html>

    总结: 全局注册的什么地方都可以使用(当然也要是vue管辖范围内);   局部注册的只在挂载当前的元素下可以使用:

    以上为Vue简化的语法语法糖注册;

    再看一下:

    vue组件的注册明确步骤:有助于理解 Vue.extend()和Vue.component()全局API;  

    1.其中:Vue.extend()不管是注册全局还是局部都会要用到:

    2.Vue.component()用于注册全局组件:

    <html>
    <meta charset="UTF-8" />
        <body>
            <div id="app">
                <!-- 3. my-component只能在#app下使用-->
                <h4>局部注册方式</h4>
                <my-component></my-component>
            </div>
    
             <div id="app1">
                <!-- 3. my-comp-->
                <h4>全局注册</h4>
                <my-comp></my-comp>
            </div>
    
            <div id="app2">
                <!-- 3. my-comp-->
                <h4>全局注册</h4>
                <my-comp></my-comp>
            </div>
    
    
    
        </body>
        <script src="vue.js"></script>
        <script>
            //局部: 1.创建一个组件构造器
            var myComponent = Vue.extend({
                template: '<div>This is my first component! {{name}}</div>',
                data(){
                    return {
                        name:"liuliuiu"
                    }
                }//es6语法;
            });
    
            new Vue({
                el: '#app',
                components: {
                    // 2. 将myComponent组件注册到Vue实例下
                    'my-component' : myComponent
                }
            });
    
    
            //全局:1.创建一个组件构造器
            var myComponent = Vue.extend({
                template: '<div>This is a component!</div>'
            })
    
            Vue.component('my-comp', myComponent)
    
            var app1 = new Vue({
                el: '#app1'
            });
    
            var app2 = new Vue({
                el: '#app2'
            });
    
    
    
    
        </script>
    </html>

     问题:

    个人理解,全局的组件在任何被Vue挂载的元素下都可以使用:

    但是文中的第二种方式,当全局组件和局部组件放在同一个Vue挂载元素下的时候会出现警告:(不过内容是渲染出来了);

    而第一种注册方式则不会出现警告 Vue版本为2.5.1

  • 相关阅读:
    如何写一个使用Web Service的IOS应用
    iPad定制相机界面
    IOS Quartz 2D 学习(1)
    cocoa Shallow Copy与Deep Copy
    sqlite3_prepare_v2返回1
    IOS 监听相机对焦事件
    UIImageView添加响应事件无响应
    二、Mongodb常用命令
    三、Mongodb Java中的使用
    多测师肖老师__第二个月python安装和pycharm安装
  • 原文地址:https://www.cnblogs.com/liuliu-hai/p/7804549.html
Copyright © 2011-2022 走看看