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

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

程序员文章站 2023-11-04 12:32:16
本片文章将为您详细讲解在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)
    })
}

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

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