美文网首页
2018-09-22 vue组件

2018-09-22 vue组件

作者: 如履薄冰Zz | 来源:发表于2018-09-22 08:08 被阅读0次

全局:

<div id="itany">
<组件名></组件名>//组件名不能用HTML元素

</div>
Vue.component('组件名',{
  template:`<p>这是组件的全局注册</p>`
})
new Vue({
  el:'#itany'
})

局部:

<div id="itany">
<组件名></组件名>
</div>
    new Vue({
        el:'#itany',
        components:{
            '组件名':{
                template:`<p>1581</p>`
            }
        }
    })

组件中可以写多个component

<div id="app">
<my-itany></my-itany>
</div>
<script src="js/vue.js"></script>
<script>
    Vue.component('my-itany',{
        template:`
        <div>
            <p>第一行</p>
            <you-itany v-bind:message="mas"></you-itany>
        </div>
        `,
        data:function(){
            return{
                mas:'asfg'
            }
        }
    })
    Vue.component('you-itany',{
        props:['message'],
        template:`
        <div>
            <p>{{message}}</p>
        </div>
        `
    })
    new Vue({
        el:'#app'
    })
</script>

组件中可以正常使用vue中的指令

<div id="itany">
<n-component></n-component>
</div>
<script src="js/vue.js"></script>
<script>
    Vue.component('n-component',{
        template:`
        <div>
            <p>{{message}}</p>
            <button v-on:click="add">按钮</button>
        </div>
        `,
        data:function(){
            return{
                message:'dcgf'
            }
        },
        methods:{
            add:function(){
                alert(11111)
            }
        }
    })
    new Vue({
        el:'#itany'
    })
</script>

props是组件间的桥梁

<div id="app">
<my-mother></my-mother>
</div>
<script src="js/vue.js"></script>
<script>
    Vue.component('my-mother',{
        template:`
            <div>
                <my-tit v-bind:tit="title"></my-tit>
            </div>
        `,
        data:function(){
            return{
                arr:['banana','apple','orange'],
                title:'水果贩卖'
            }
        }
    })
    Vue.component('my-tit',{
        props:['tit'],
        template:`
            <p>{{tit}}</p>
        `
    })

子传父 (emit) this. emit自定义事件

<div id="itany">
    <my-father></my-father>
</div>
<script src="js/vue.js"></script>
<script>
    Vue.component('my-father',{
        template:`
            <div>
                <p>{{message}}</p>
                <my-son @send="jieSend"></my-son>
            </div>
        `,
        data:function(){
          return{
              message:''
          }
        },
        methods:{
          jieSend:function(text){
              this.message=text
          }
        }
    })
    Vue.component('my-son',{
        template:`
            <button @click="send">传递</button>
        `,
        data:function(){
            return{
                msg:'Who are you?'
            }
        },
        methods:{
            send:function(){
                this.$emit('send',this.msg)
            }
        }
    })
    new Vue({
        el:'#itany'
    })
</script>

相关文章

网友评论

      本文标题:2018-09-22 vue组件

      本文链接:https://www.haomeiwen.com/subject/mbutoftx.html