欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue组件之间数据传递的方法实例分析

程序员文章站 2022-04-09 12:31:39
本文实例分析了vue组件之间数据传递的方法。分享给大家供大家参考,具体如下: 1、props:父组件 -->传值到子组件 app.vue是父组件 ,其它组件是子组...

本文实例分析了vue组件之间数据传递的方法。分享给大家供大家参考,具体如下:

1、props:父组件 -->传值到子组件

app.vue是父组件 ,其它组件是子组件,把父组件值传递给子组件需要使用 =>props

在父组件(app.vue)定义一个属性(变量)sexval = '男'  把该值传递给 子组件(b.vue),如下:

app.vue

<template>
 <div id="app">
  <!--<router-view></router-view>-->
 <parenttochild :sex="sexval"></parenttochild>
  </div>
</template>
<script>
 import parenttochild from './components/b'
 export default {
  name: 'app',
  data: function () {
   return {
    sexval:"女"
   }
  },
  methods: {
  },
  components: {
   parenttochild
  }
 }
</script>

b.vue

<template>
 <div class="b_class"> <!--外边只允许有一个跟元素-->
   <p>父组件传值给子组件</p>
   <p>姓名:{{name}}</p>
   <p>年龄:{{age}}</p>
   <p>sex:{{sex}}</p>
 </div>
</template>
<script>
 export default {
  data: function () {
   return {
    name: 'zs',
    age: 22
   }
  },
  props:['sex']
 }
</script>

tips:

在父传值给子组件使用属性值:props; 理解成 “ 中介” 父组件绑定传递属性值(:sex="sexval") 子组件 获取属性值 props['sex'] 会添加到data 对象中

 vue组件之间数据传递的方法实例分析

2、$emit:子组件 -->传值到父组件

在b.vue 子组件添加一个点击事件为例子

@click="sendms

<input type="button" @click="sendmsg" value="子组件值传父组件">

在调用该函数后使用$emit方法传递参数 (别名,在父组件作为事件名称, 值);

methods: {
   sendmsg: function () {
    this.$emit('childmsg', '值来自---子组件值')
   }
}

app.vue

在父组件中 使用该别名(作为事件名使用),调用方法 childevent 返回子组件传过来的值

<p>{{message}}</p>
  <!--<router-view></router-view>-->
<parenttochild :sex="sexval" @childmsg = "childevent"></parenttochild>

data: function () {
   return {
    sexval: "女",
    message: ''
   }
},
methods: {
   childevent: function (msg) {
     this.message = msg;  // msg 来自子组件
   }
}

点击 “按钮”值会传到 父组件中。 组件之间不能互相传值。

 vue组件之间数据传递的方法实例分析

希望本文所述对大家vue.js程序设计有所帮助。