美文网首页
2018-09-19 vue初学七(组件,及组件之间的传值)

2018-09-19 vue初学七(组件,及组件之间的传值)

作者: 五月葉 | 来源:发表于2018-09-19 15:55 被阅读0次

1.组件

组件(Component)是 Vue.js 最强大的功能之一。
组件可以扩展 HTML 元素,封装可重用的代码。
组件同样分为全局组件和局部组件
全局组件:component("组件名",{template:代码块 })
局部组件:components:{"组件名":{template:代码块 } }
注意:1.组件名不可以使用已经存在的html元素。2.组件中的data是一个函数,并有返回值

组件的练习

<div class="add">
        <my-component></my-component>
</div>
<script>
      Vue.component("my-component",{
          template:`
                <div>
                    <p>{{msg}}</p>
                    <button @click="fun">哈哈</button>  //在组件中可以加入vue的一些指令
                </div>
            `,
          data:function(){   //在组件中的data数据是一个函数,并加入返回值
              return{
                  msg:"下课了"
              }
          },
          methods:{        //点击时触发这个函数
              fun:function(){
                  alert("哈哈")
              }
          }
      }     
    )
      new Vue({
          el:".add",
      })
</script>

2.组件之间的传值

分为3类:

1.父给子传 用属性传 props:["定义属性"];
2.子给父传 用事件传
3.同级之间的传值

传值练习(父给子传)

<div class="add">
        <my-father></my-father>
</div>
<script>
    Vue.component("my-father",{
        template:`
                <div>
                    <my-tit v-bind:tit="title"></my-tit>  //在这里进行绑定,绑定到了data中的title值
                    <my-name v-bind:names="name"></my-name>
                </div>
            `,
        data:function(){
            return{
                name:["苹果","香蕉","橘子"],
                title:"水果店"
            }
        }
    })
    Vue.component("my-tit",{
        props:["tit"],  //使用props定义了一个新的属性,将这个属性绑定到这个组件上
        template:`
                <h3>{{tit}}</h3> //这个tit的新属性在父及组件中进行绑定,绑定什么数据输出什么
            `
    })
    Vue.component("my-name",{
        props:["names"],
        template:`
            <ul>
                <li v-for="value in names">{{value}}</li> //在组件中可以进行vue的指令操作
            </ul>    

        `
    })
    new Vue({
         el:".add"
     })
</script>

相关文章

网友评论

      本文标题:2018-09-19 vue初学七(组件,及组件之间的传值)

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