父子,兄弟组件传值

本文详细介绍了在Vue中实现组件间通信的三种常见方式:EventBus、子组件向父组件($emit)传递数据以及父组件向子组件(props)传递数据。通过实例代码演示了每种方法的具体用法,帮助开发者更好地理解和应用Vue的组件通信机制。
摘要由CSDN通过智能技术生成

一、bus组件传值

1.在utils中新建bus.js文件,引入vue

import Vue from 'vue'
const bus = new Vue();// 使用 Event Bus
export default bus;

2.在main.js中引入vue bus (也可以在使用的组件中引入)

import Bus from './utils/bus';   
Vue.prototype.$bus = Bus

3.在A页面传递

import Bus from './utils/bus';
Bus.$emit("Page",value); //很像父子之间传值的方法

4.在B页面接收

import Bus from './utils/bus';
Bus.$off("Page").$on("Page", e => {
    console.log(e)
})

二、子传父(this.$emit())

1.在子组件subsMiddle.vue使用

this.$emit("toGetList",params);

2.在父组件引入子组件

//父组件
<template>
  <div id="app"> 
    <subsmiddle @toGetList="toGetList" />
  </div>
</template>
<script>
import subsMiddle from "./subsMiddle.vue"
   export default {  
   components: {
    subsMiddle
  },   
   methods:{
    toGetList(params) {
     	console.log(params) 
 	},
  }
</script>

三、父传子(props)

1.父组件App.vue

<template>
  <div id="app"> 
    <hellochange :msgchange="msgdata"></hellochange>
  </div>
</template>

<script>
import HelloChange from './components/HelloChange.vue'

   export default {  
    components:{
        hellochange:HelloChange
    },   
      data () { 
        return {       
         msgdata:'我是父组件传值'
        }
      }     
    }
</script>

2.子组件HelloChange.vue

<template>
    <!-- 所有的内容要被根节点包含起来 -->
    <div id="hellochange">    
       {{msgchange}}     
    </div>
</template>

<script>
    export default{
        data(){
            return {                         
            }
        },
        props:{
            msgchange:{
                type:String
            }
        }
    }
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue是一个以数据驱动、组件化的前端框架,其中,组件化是Vue中较为重要的概念之一,组件之间的通信则成为Vue中较为普遍的需求。 Vue中有两种组件的关系,一种是父子之间的关系,一种是兄弟之间的关系,父子组件之间的通信则可以通过props和value实现。 在Vue的父组件中,可以通过prop绑定属性的方式将数据传递给子组件,子组件通过props接收父组件的数据并进行操作。 例如,父组件中定义props属性: ``` <template> <child-component :name="name"></child-component> </template> <script> export default { name: 'parent-component', data() { return { name: 'Tom' } }, components: { 'child-component': childComponent } } </script> ``` 子组件则需要在props中声明接收父组件name数据: ``` <template> <div>{{name}}</div> </template> <script> export default { name: 'child-component', props: { name: { type: String, required: true } } } </script> ``` 在父组件中,通过:name属性将name数据传递给child-component组件,在子组件props中,声明name属性,类型为String,并设置required为true,则父组件必须传递name数据给子组件,否则会抛出错误。 当父组件的数据发生变化时,子组件也会及时更新,这时就可以通过子组件中的计算属性或方法对prop数据进行处理或者对传递的数据进行一些额外的操作。 以上就是Vue父子组件传值props value的简单介绍,掌握好这个知识点可以更好地理解Vue组件的通信方式,提高开发效率和代码的可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值