美文网首页
vue组件传值

vue组件传值

作者: Yin先生 | 来源:发表于2019-12-16 23:41 被阅读0次

一.父组件向子组件传值:

1.子组件在props中创建一个属性,用以接收父组件传来的值
2.父组件中注册子组件
3.在子组件标签中添加子组件props中创建的属性
4.把需要传给子组件的值赋给该属性
父组件:Father.vue

<template>
    <div>
          父组件:
        <input type="text" v-model="name">
        <br>
        <son :inputName = "name"></son>
    </div>
</template>
<script>
// 引入子组件
import son from './components/son'
    export default {
        components:{
            son // 注册子组件
        },
        data() {
            return {
                name:''
            }
        }
    }
</script>

子组件:son.vue

<template>
    <div>
        我是子组件
        {{inputName}}
    </div>
</template>
<script>
    export default {
         props: {
          inputName: String,
          required: true
        }
    }
</script>

效果:


父子传值效果.gif

二.子组件向父组件传值:

子组件中需要以某种方式例如点击事件的方法来触发一个自定义事件
将需要传的值作为$emit的第二个参数,该值将作为实参传给响应自定义事件的方法

在父组件中注册子组件并在子组件标签上绑定对自定义事件的监听
在子组件中创建一个按钮,给按钮绑定一个点击事件
在响应该点击事件的函数中使用$emit来触发一个自定义事件,并传递一个参数
子组件:child.vue

<template>
    <div>
        我是子组件:
        {{childValue}}
        <!-- 定义一个子组件传值的方法 -->
        <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>

父组件:Father.vue

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

效果:


子父传值效果.gif

三、 vue 组件间传值(兄弟)(bus方式)

bus方式的组件间传值其实就是建立一个公共的js文件,专门用来传递消息
1.建立公共文件,并引入
新建Bus.js文件。只需两句代码。

 import Vue from 'vue'
 export default new Vue;

然后在需要传递消息的两个组件引入

import Bus from '@/components/utils/Bus.js';

2.发送消息

触发组

Bus.$emit('msg', _this.examineNum);

3.接受消息
  接受组件的事件:
 写在钩子函数内:例如:mounted created都可以

  Bus.$on('msg', (e) => {
   this.examineNum = e;
 })

相关文章

  • Vue - 传值

    Vue 传值有两种:1)父组件向子组件传值(属性传值,Prop传值)2)子组件向父组件传值 一、父组件向子组件传值...

  • (VUE3) 四、组件传值(父子组件传值 & 祖孙组件传值 &v

    1.父子组件传值 vue2中的父子组件传值:父组件: 子组件: vue3中的父子组件传值: 还是用props接收父...

  • VUE组件(传值,生命周期)

    VUE生命周期 VUE子传父组件通信 VUE非父子组件传值

  • 前端基础搬运工-VUE模块

    十、VUE模块 基础部分 1. Vue组件间传值 答: -[ ] 1.父子之间的传值 父组件向子组件传值通过p...

  • Vue父子组件通信和双向绑定

    本篇文章主要介绍父子组件传值,组件的数据双向绑定。 1. 基础父子组件传值 父子组件传值,这是Vue组件传值最常见...

  • 2019-03-13

    vue父子组件传值,(父组件向子组件传值用prop ,子组件向父组件传值:子组件调用父组件方法值以参数的方式传递)...

  • 2019-03-13

    vue父子组件传值,(父组件向子组件传值用prop ,子组件向父组件传值:子组件调用父组件方法值以参数的方式传递)...

  • vue2.0的三种常用传值方式,并且如何实现?

    vue2.0 组件传值方式有三种:父组件向子组件传值,子组件向父组件传值,非父子组件传值 : 父传子: 首先现在父...

  • Vue组件传值

    vue组件传值 一、父组件向子组件传值方式: 1. 子组件中定义props,父组件向子组件props进行传值。 2...

  • Vue 父组件向子组件传值

    Vue 父组件向子组件传值 demo代码 (vue.js ...

网友评论

      本文标题:vue组件传值

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