深度剖析Vue中父给子、子给父、兄弟之间传值!

本片文章将为您详细讲解在Vue中,父给子传值、子给父传值以及兄弟之间传值方式!

父传子;父组件

//  template里面
        <aa :info="name"/>

//  script里面
import aa from ‘./aa.vue‘
      components:{
          aa
      },
      data(){
          return{
              name : ‘小明‘
          }
      }

  父传子;子组件

// template里面
        {{info}}

// script里面
  export default {
      props :[‘info‘]
  }

需要注意的是,父组件传值给子组件,如果子组件不需要修改父组件的参数,可以使用这种方式!如果子组件要修改父组件中的参数,父组件必须用引用类型的参数传给子组件!

子传父;父组件

//  template里面   @info是父子之间通讯
<app @info="change" />
//  script里面
import app from ‘./views/app.vue‘
 methods:{
//  接受子组件传过来的参数;
     change(z){
         console.log(z)
     }
 }

子传父;子组件

//  temolate里面
<el-button @click="change() ;aa()">我是子组件</el-button>
//  script里面
methods:{
      change(){
          this.$emit(‘info‘,‘我是儿子,传值给父亲‘)
      }
  }

兄弟之间传值使用的是$bus的传值方式,具体配置如下

同目录下创建bus.js

//  bus.js中只需要写这么多就ok
export default {
    install(Vue){
        Vue.prototype.$bus = new Vue({});
    }
};

main.js中需要引入bus.js文件!

//  在main.js中引入创建好的bus.js文件
import bus from ‘./bus.js‘;
Vue.use(bus);

new Vue({
    el: ‘#app‘,
    render(h){
        return h(App);
    }
});

配置完成开始书写传值代码;

兄弟传值;传值方

<button @click=" $bus.$emit(‘info‘,‘哈哈‘)">点击兄弟传值</button>

兄弟传值;接受方

//  直接使用生命周期来接受,可以赋值给其他参数!
created(){
  this.$bus.$on(‘info‘,data =>{
      console.log(data)
    })
}

如果喜欢我的文章,请关注下微信公众“前端伪大叔”!我将不定期为您发布各种前端重要知识点!谢谢

原文地址:https://www.cnblogs.com/webfy/p/11217260.html

时间: 2024-10-11 07:27:32

深度剖析Vue中父给子、子给父、兄弟之间传值!的相关文章

Vue中利用$emit实现子组件向父组件通信

Vue中利用$emit实现子组件向父组件通信 父组件 <template> <div> <p>我是父组件</p> <child :isShow="show" @hidechild="hidechild"></child> <button @click="show=true">显示子组件</button> </div> </templa

vue中组件间的通信,父传子,子传父

参考文章 :https://www.cnblogs.com/yszblog/p/10135969.html 1 父传子 子组件Vue 父组件 注册子组件 子组件在props中创建一个属性,用以接收父组件传过来的值 父组件中注册子组件 在子组件标签中添加子组件props中创建的属性 把需要传给子组件的值赋给该属性 2 通过$emit  子组件向父组件传值 2.1 子组件Vue 2.2 父组件 2.3 父组件监听子组件发射的事件名 子组件中需要以某种方式例如点击事件的方法来触发一个自定义事件 将需要

vue中父子组件主动获取值 父组件向子件间的传值

父组件主动获取子组件的数据和方法: 1.调用子组件的时候定义一个ref <v-header ref='header'></header> 2.在父组件里面通过 this.$refs.header.属性 this.$refs.header.方法 子组件主动获取父组件的数据和方法 this.$parent.数据 this.$parent.方法 父组件向子件间的传值 1.父组件调用子组件的时候 绑定动态属性 2.在子组件里通过props接受父组件传过来的数据 原文地址:https://w

vue中 $event 的用法--获取当前父元素,子元素,兄弟元素

<button @click = “clickfun($event)”>点击</button> methods: { clickfun(e) { // e.target 是你当前点击的元素 // e.currentTarget 是你绑定事件的元素 #获得点击元素的前一个元素 e.currentTarget.previousElementSibling.innerHTML #获得点击元素的第一个子元素 e.currentTarget.firstElementChild # 获得点击元

vue2.0 子组件和父组件之间的传值

Vue是一个轻量级的渐进式框架,对于它的一些特性和优点在此就不做赘述,本篇文章主要来探讨一下Vue子父组件通信的问题 首先我们先搭好开发环境,我们首先得装好git和npm这两个工具(如果有不清楚的同学请自行百度哦) 环境搭建步骤: 打开git ,运行 npm install --global vue-cli 这是安装vue的命令行 vue init webpack vue-demo 这是vue基于webpack的模板项目 cd vue-demo 进入vue-demo文件夹 npm install

libevent学习笔记(参考libevent深度剖析)

最近自学libevent事件驱动库,参考的资料为libevent2.2版本以及张亮提供的<Libevent源码深度剖析> libevent好处之类的就不赘述了,libevent和libiop,redis等一样都是采用事件回调机制,这种模式 被称作Reactor模式.正常事件处理流程是应用程序调用某个接口触发某个功能,而Reactor模式需要 我们将这些接口和宿主指针(谁调用这些接口)注册在Reactor,在合适的时机Reactor使用宿主指针 调用注册好的回调函数. 一: Reactor基本知

Vue中,父组件向子组件传值

1:在src/components/child/文件夹下,创建一个名为:child.vue的子组件 2:在父组件中,设置好需要传递的数据 3:在App.vue中引入并注册子组件 4:通过v-bind属性绑定并赋值给子组件 5:子组件通过 props 接收父组件传递过的数据 6:查看 7:总结: 子组件在props中创建一个属性,用以接收父组件传过来的值 父组件中注册子组件 在子组件标签中添加子组件props中创建的属性 把需要传给子组件的值赋给该属性 原文地址:https://www.cnblo

VUE中父组件向子组件传递数据 props使用

VUE中,子组件是不能直接访问父组件的数据(一般来说,当然如果你要破坏原则也是可以),如下< <body> <div id="fathercomponent"> <ul> <li v-for="item in fatherdatas">{{item}}</li> <!--父组件可以访问它自己的数据--> </ul> <child-component></chi

vue中父组件如何监听子组件值的变化

vue中我们会遇到很多父子组件通信的需求, 下面简单列一下,父子组件通信的几种情况 1:父组件向子组件传值:使用prop向子组件传值: 2:子组件实时监听父组件传来的值的变化:使用watch去监听父组件传来的值: 3:父组件可以通过this.$refs.name.去访问子组件的值或方法: 4:子组件可以通过this.$parent.去访问父组件的值或方法: 总结了一下,感觉好像挺全面的,好像不缺啥了.... 但是仔细一想,父组件如何去监听子组件的值呢?如何根据子组件中的某个值的变化,父组件作出响