zoukankan      html  css  js  c++  java
  • vue----全局组件,局部组件

    1.组件:
    页面的每一个模块都是一个组件
    分为:
      局部组件 全局组件
    2.全局组件
    Vue.component(参数1,参数2)
     
    参数1:组件名称---做标签进行使用的(组件名称大写,不允许与html标签名字相同)
    参数2:组件的配置项
    --->对象(可抽出单独写) 这个对象会有一些属性,这些属性只要vue里面有的属性那么这里面都会有
           (template,data,methods.computed,watch,生命周期函数等),简单的来说这个组件其实就是小型vue实例     template:里面写的是html结构(其实是虚拟DOM)     data:是一个函数 必须返回一个对象
    3.局部组件
    局部组件在vue的内部进行实现
    new Vue({
        el:"#app",
        components:{
            key:val
        }
     
        key:组件名称
        val:组件的配置项
    })
    4.为什么组件内部data是一个函数?
    组件可以复用,
    如果是对象的情况下,在组件复用时可能会导致data中的数据出现覆盖或者调用出错。
    因此是一个函数,这样的情况下,每次使用组件,都会调用函数,每次函数执行完毕后会返回一个新的对象 而不是公用的一个对象
    5.组件和vue实例的区别
    1、组件内部多了一个属性叫做template
     
    2、组件内部的data不在是一个对象了 而是一个函数 需要返回一个对象
    全局组件案例:
    <body>
        <div id="app">
            <!-- 使用中间件 -->
            <banner-con></banner-con>
        </div>
     
        <div id="app2">
            <banner-con></banner-con>
        </div>
    </body>
    </html>
    <script src="vue.js"></script>
    <script>
    //配置项
        const banner = {
        //模板
            template:`<div>
                    <img v-for="(item,index) in imgs" :src="item" />
                </div>`,
    //注意data是一个函数,必须return一个对象
    //数据
            data(){
                return {
                    imgs:[
                       "https://pic.maizuo.com/usr/movie/9f80ee6f3351c49dcf9de57dfbc8cdfe.jpg",
                       "https://pic.maizuo.com/usr/movie/5a406a685eb7906b793181328d571ad7.jpg",
                       "https://pic.maizuo.com/usr/movie/9a843566ffc11c80e1747e7af8a5e48a.jpg"
                   ]
                }
            },
            methods:{
     
            },
            created(){
                console.log(this);
            }
        }
      
    Vue.component("banner-con",banner)
     
        var vm = new Vue({
            el:"#app"
        })
     
        var vm2 = new Vue({
            el:"#app2"
        })
    </script>
     局部组件案例
    <body>
        <div id="app">
            <!-- 使用中间件 -->
            <banner-con></banner-con>
        </div>
    </body>
    </html>
    <script src="vue.js"></script>
    <script>
    //配置项
        const banner = {
            //模板
            template:`<div>
                    <img v-for="(item,index) in imgs" :src="item" />
                </div>`,
            //模板字符串
            data(){
                return {
                    imgs:[
                       "https://pic.maizuo.com/usr/movie/9f80ee6f3351c49dcf9de57dfbc8cdfe.jpg",
                       "https://pic.maizuo.com/usr/movie/5a406a685eb7906b793181328d571ad7.jpg",
                       "https://pic.maizuo.com/usr/movie/9a843566ffc11c80e1747e7af8a5e48a.jpg"
                   ]
                }
            },
            methods:{
     
            }
           
        }
      
        var vm = new Vue({
            el:"#app",
            //局部组件,数据,方法等都是在配置项中写
            components:{
                //key:组件的名称,value组件的配置项,可单独写
                "banner-con":banner
            }
        })
    </script>
     
     
     
     
     
     
  • 相关阅读:
    备忘: Visual Studio 2013 VC++ IDE 使用小贴示。
    获取动态数组指针 所指向数组长度的一种方法
    备忘:C++ 类 (初学之实录)。
    备忘:VC++ 中的异常处理
    备忘: C++中的 vector 容器
    备忘:C++基础 -- 数据类型的学习总结
    Windws Server 2008 R2 WEB环境配置之MYSQL 5.6.22安装配置
    Windows Server 2008 R2 WEB服务器配置系列文章索引
    php学习过程二
    php学习过程一
  • 原文地址:https://www.cnblogs.com/SRH151219/p/10390369.html
Copyright © 2011-2022 走看看