zoukankan      html  css  js  c++  java
  • vue学习—组件的定义注册

    组件的定义注册

    效果:

    方法一:

            <div id="box">
                <v-header></v-header>
                <hr />
                <br />
                {{name}}
                <hr />
                <br />
                <v-footer></v-footer>
            </div>
            <script>
                //1.定义组件
                var Header={
                    template:'<h2>这是一个头部组件</h2>'
                }
                //2.注册组件
                Vue.component('v-header',Header);
                
                var Footer={
                    template:'<h2>这是一个底部组件</h2>'
                }
                Vue.component('v-footer',Footer);/*组件名称不能用html标签*/
                
                //注意: 组件名称不能和html标签一样
                var vm=new Vue({
                    el:'#box',
                    data:{
                        name:'hello world'
                    }
                })
            </script>        

    方法二:

      //定义组件和注册组件放在一起
        Vue.component('v-footer',{
            template:'<div><h2>这是一个底部组件</h2></div>'
        })
            

    方法三(用的最多):

                //1.定义组件
                var Header={
                    template:'<h2>这是一个头部组件</h2>'
                }
                
                //1.定义组件
                var Footer={
                    template:'<h2>这是一个footer组件</h2>'
                }
                
                var vm=new Vue({
                    el:'#box',
                    data:{
                        name:'ahah'
                    },
                    components:{
                        //2.注册组件
                        'v-header':Header,
                        'v-footer':Footer
                    }
                })                    

    方法四:

            var vm=new Vue({
                    el:'#box',
                    data:{
                        name:'hhahhah'
                    },
                    components:{
                        'v-header':{
                            template:'<h2>这是一个头部组件</h2>'
                        },
                        'v-footer':{
                            template:'<h2>这是一个footer组件</h2>'
                        }
                    }
                })

     vue组件的定义注册-深入

            <div id="box">
                <v-header></v-header>
                <hr />
                <br />
                {{name}}
                <hr />
                <br />
                <v-footer></v-footer>
            </div>
            <template id="header">
                <div>
                    <h2>这是一个头部组件--{{msg}}</h2>
                    <div class="button" @click="setData()">
                        点击改变msg
                    </div>
                </div>
            </template>
            <template id="footer">
                <h2>这是一个底部组件--{{msg}}</h2>
            </template>
            <script>
                var Header={
                    template:'#header',
                    data:function(){
                        return {
                            msg:'这是头部组件的msg'
                        }
                    },methods:{
                        setData:function(){
                            this.msg='改变头部组件的内容'
                        }
                    }
                }
                var Footer={
                    template:'#footer',
                    data:function(){
                        return {
                            msg:'这是底部组件的msg'
                        }
                    }
                }
                
                var vm=new Vue({
                    el:'#box',
                    data:{
                        name:'haha'
                    },
                    components:{
                        'v-header':Header,
                        'v-footer':Footer
                    }
                })
            </script>            

    点击按钮之后

    //------------------------------------------------------------------------------------------

    vue组件 - 模板

         <div id="box">
                {{msg}}
                <v-header></v-header>
                <br />
                <br />
                <v-footer></v-footer>
            </div>
            <script type="x-template" id="header">
                <div class="header">
                    <h2>这是标题</h2>
                    <p>{{msg}}</p>
                    <button @click="run()">这是一个按钮</button>
                </div>
            </script>
            <template id="footer">
                <div class="footer">
                    <h2>这是底部组件的标题</h2>
                    <p>这是一个底部组件的内容</p>
                    <p>这是一个底部组件的内容</p>
                </div>
            </template>
            <script>
                //注意:模板里面所有的东西要被根元素包裹起来
                //定义组件
                var Header={
                    template:'#header',
                    data:function(){
                        return {
                            msg:'这是头部,哈哈哈'
                        }
                    },methods:{
                        run:function(){
                            alert('run');
                        }
                    }
                }
                
                var Footer={
                    template:'#footer'
                }
                var vm=new Vue({
                    el:'#box',
                    data:{
                        msg:'hello vue'
                    },
                    components:{
                        //注册组件
                        'v-header':Header,
                        'v-footer':Footer
                    }
                })
            </script>

    vue父子组件

    介绍

            <div id="box">
                {{a}}
                <br />
                <v-header></v-header>
            </div>
            <template id="header">
                <div>
                    <h2>
                        我是头部组件11-{{msg}}
                        <br />
                        <v-nav></v-nav>
                    </h2>
                </div>
            </template>
            <template id="nav">
                <div>
                    <h2>这是一个nav组件--{{msg}}</h2>
                </div>
            </template>
            <script>
                //要放在组件 v-nav的定义之前
                var Nav={
                    template:'#nav',
                    data:function(){
                        return {
                            msg:'我是nav内容'
                        }
                    }
                }
                var Header={
                    template:'#header',
                    data:function(){
                        return {
                            msg:'我是header内容'
                        }
                    },components:{
                        'v-nav':Nav
                    }
                }
                var vm=new Vue({
                    el:'#box',
                    data:{
                        a:'我是大box'
                    },
                    components:{
                        'v-header':Header,
                    }
                })
            </script                    

  • 相关阅读:
    [学习笔记]分组数据以及on/where/having的顺序问题
    java开发流程(未完成)
    首发测试
    免费的网上问卷调查程序
    德广火车票助手登录12306代码详解登录
    vs2008 SmartDevice 程序 访问Internet时出错 提示:未能建立与网络的连接。解决方案
    使用U盘安装Windows Server2008
    德广火车票助手源码 请各位前辈给些建议
    关于微软有自增列父子表更新程序的问题
    在线HTML标签验证工具.很好用的.
  • 原文地址:https://www.cnblogs.com/rachelch/p/7553215.html
Copyright © 2011-2022 走看看