props和$emit的使用

一、props

props:用来接收父组件传递的数据,可以是数组,也可以是对象

props是在子组件里面写的,其值为一个数组,即props:[keyName]。其中的keyName是要传递的参数,但它是如何绑定到父组件的数据呢?在父组件里面用到子组件的时候,就在父组件文件中的子组件标签里面进行绑定keyName,然后keyName的值就是要绑定的父组件的数据。子组件里面要用到父组件数据时就直接用keyName就行。

二、$emit()

$emit():子传父

子组件:child.vue

<template>
    <div class="parent">
      <p>{{childData}}</p>
      <Child @showData="updateData" :sendData="childData"></Child>
    </div>
</template>
<script>
  import Child from "./child";
  export default {
    components: {Child},
    data(){
        return {
            childData:"父组件传递给子组件的值"
        }
    },
    methods:{
      //通过触发子组件触发,修改父组件定义的值
      updateData(data){
       this.childData=data;
      }
    }
  }
</script>

父组件:parent.vue

<template>
  <div class="child">
    <h3>接收父组件传递过来的值:{{sendData}}</h3> 
    <br/>
    <button @click='toParent'>点击将子组件内容传递给父组件</button>
  </div>
</template>
<script>
  export default {
    props:['sendData'], 
    methods:{
      toParent() {
        this.$emit('showData',"通过$emit传递给父组件");//toParent事件触发后,自动触发showData事件
      }
    }
  }
</script>

 

posted @ 2022-05-09 22:19  仙女会长高  阅读(166)  评论(0编辑  收藏  举报