美文网首页
vue父、子组件相关的传递

vue父、子组件相关的传递

作者: 秋慕云 | 来源:发表于2020-06-25 19:53 被阅读0次

转载原文

使用vue这种组件化开发的项目里,父子组件间相互传值是非常频繁的操作。比如一个组件调用另一个组件作为自己的子组件,那么我们如何进行给子组件进行传值呢?

基于这种情况,本篇将给大家介绍Vue开发中常用的几种情况:父向子传递值、子组件向父传递值,父组件调用子组件方法,子组件调用父组件方法。

vue官网的一句话:

父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息

如下图所示:

接下来,我们通过实例来看可能会更容易理解一些:

一、父组件向子组件操作**

1 父组件向子组件进行传值

父组件代码:

<template>
  <div>
    父组件:
    <input type="text" v-model="name">
    <br>
    <br>
    <!-- 引入子组件 传值使用冒号,如下面的 :inputName,在inputName前加上一个 :  -->
    <child :inputName="name"></child>
  </div>
</template>
<script>
  // 引入子组件
  import child from './child'
  export default {
    components: {
      child// 自组建声明
    },
    data () {
      return {
        name: ''
      }
    }
  }
</script>

子组件代码:

<template>
  <div>
    子组件:
    <span>{{inputName}}</span>
  </div>
</template>
<script>
  export default {
    // 接受父组件的值,需要在props中进行显示的定义
    props: {
      inputName: String,
      required: true
    }
  }
</script>

1 父组件调用子组件的方法

父组件:


<template>
    <div>
        <button v-on:click="clickParent">点击</button>
        // 声明一个ref
        <child1 ref="child1"></child1>
    </div>
</template>
<script>
    import Child1 from './child1';
    export default {
        name: "parent",
        components: {
            child1: Child1
        },
        methods: {
            clickParent() {
                //直接调用自组件的handleParentClick()方法
                this.$refs.child1.handleParentClick("ssss");
            }
        }
    }
</script>

子组件:


<script>
    export default {
        name: "child1",
        props: "msg",
        methods: {
            handleParentClick(e) {
            }
        }
    }
</script>

二、 子组件向父组件操作

2. 子组件向父组件传值

子组件代码:

<template>
  <div>
    子组件:
    <span>{{childValue}}</span>
    <!-- 定义一个子组件传值的方法 -->
    <input type="button" value="点击触发" @click="childClick">
  </div>
</template>
<script>
  export default {
    data () {
      return {
        childValue: '我是子组件的数据'
      }
    },
    methods: {
      childClick () {
        // childByValue是在父组件on监听的方法
        // 第二个参数this.childValue是需要传的值
        this.$emit('childByValue', this.childValue)
      }
    }
  }
</script>

父组件代码:

<template>
  <div>
    父组件:
    <span>{{name}}</span>
    <br>
    <br>
    <!-- 引入子组件 定义一个on的方法监听子组件的状态-->
    <child v-on:childByValue="childByValue"></child>
  </div>
</template>
<script>
  import child from './child'
  export default {
    components: {
      child
    },
    data () {
      return {
        name: ''
      }
    },
    methods: {
      childByValue: function (childValue) {
        // childValue就是子组件传过来的值
        this.name = childValue
      }
    }
  }
</script>

2 子组件调用父组件的方法

父组件:

<template>
      <div class="wrapper">
            <cp_action @parentMethod="macSelect"></cp_action>
      </div>
</template>
<script>
import ../components/action  //引入子组件
export default{
    components:{
        cp_action
    },
    method:{
        macSelect(){
            //方法体
            alert(123);
        }
    }
}
</script>

子组件

<template>
    <div class="bet-action">
        <span class="mac-select" @click="childMethod">机选</span>
    </div>
</template>
<script>
    export default{
      methods: {
          childMethod() {
              console.log('请求父组件方法');
              this.$emit('parentMethod');  //使用$emit()引入父组件中的方法
          }
      },
    }
</script>

相关文章

  • vue父子组件传递数据方法

    标签(空格分隔): vue 父组件向子组件传递数据 Vue中父组件向子组件传递数据用props 举个例子 父组件中...

  • Vue 组件数据传递

    Vue 组件数据传递 父组件->子组件 父组件到子组件的数据通过 props 传递 在父组件注册子组件,传递数据到...

  • Vue组件间数据传递

    前言 总结vue组件间的数据传递 路由传参 父组件传递数据给子组件---props 子组件传递数据给父组件---$...

  • vue2.0中组件之间的信息传递

    在vue2.0中父组件给子组件传递信息父组件 子组件 总结 父组件导入子组件 父组件中注册子组件 把需要传递给子组...

  • Vue父组件调用子组件事件

    Vue父组件向子组件传递事件/调用事件 不是传递数据(props)哦,适用于 Vue 2.0 方法一:子组件监听父...

  • vue常见面试题

    1.vue优点 2.vue父组件向子组件传递数据? 3.子组件像父组件传递事件 4.v-show和v-...

  • vue笔记9.20

    在vue中父组件向自子组件传递props子组件向父组件传递属性是用$emit shopping: 浏览器打开: 子...

  • vue学习

    vue中的事件传递 父子组件传值通过props传递,父组件 :name=“name(父数据)”子组件 props内...

  • vue组件嵌套(模态框)

    在vue中父组件向自子组件传递props; 子组件向父组件传递属性是用$emit(发布订阅); 实例基本逻辑:点击...

  • 关于$refs的用法

    $refs父组件调用子组件的方法,可以传递数据。 示例 父组件 $refsFa.vue 子组件 emitCh.vu...

网友评论

      本文标题:vue父、子组件相关的传递

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