首页 > 其他分享 >vue兄弟组件传参

vue兄弟组件传参

时间:2023-09-11 09:55:32浏览次数:33  
标签:传参 vue default bus 兄弟 export 组件 Copy

实现兄弟组件之间的参数传递可以通过以下方法:

  1. 使用共同的父组件来传递参数。
  • 在父组件中定义一个数据属性,用于保存需要传递给兄弟组件的参数。
Copy
export default {
  data() {
    return {
      message: 'Hello',
    };
  },
};
  • 在父组件的模板中引用两个兄弟组件,并通过props属性将参数传递给它们。
Copy
<template>
  <div>
    <child-component1 :message="message"></child-component1>
    <child-component2 :message="message"></child-component2>
  </div>
</template>
  • 在兄弟组件中通过props属性接收父组件传递的参数。
Copy
export default {
  props: ['message'],
  // ...
};
  • 然后可以在兄弟组件中使用传递过来的参数。
  1. 使用事件总线来传递参数。
  • 在一个单独的JavaScript文件中创建一个事件总线对象。
Copy
// event-bus.js
import Vue from 'vue';

const bus = new Vue();

export default bus;
  • 在一个兄弟组件中,通过事件总线对象发送一个事件,并同时传递参数。
Copy
import bus from './event-bus';

export default {
  methods: {
    sendData() {
      bus.$emit('event-name', 'Some data');
    },
  },
};
  • 在另一个兄弟组件中,通过事件总线对象监听事件,并接收传递的参数。
Copy
import bus from './event-bus';

export default {
  created() {
    bus.$on('event-name', data => {
      // 处理接收到的数据
    });
  },
};

通过以上两种方法,可以在兄弟组件之间实现数据的传递。第一种方法使用共同的父组件作为中间人来传递数据,第二种方法使用事件总线来进行数据传递。根据实际需求和项目结构,可以选择适合的方法来实现兄弟组件之间的参数传递。

 

在Vue中,可以使用provide和inject来在兄弟组件之间进行参数传递。provide用于提供数据,而inject用于接收provide所提供的数据。

  1. 在兄弟组件的共同父组件中使用provide提供需要传递的数据。
Copy
export default {
  provide() {
    return {
      message: 'Hello',
    };
  },
};
  1. 在兄弟组件中使用inject接收提供的数据。
Copy
export default {
  inject: ['message'],
  // ...
};
  1. 现在,在兄弟组件中可以直接使用所传递的参数。
Copy
export default {
  inject: ['message'],
  created() {
    console.log(this.message); // 输出 'Hello'
  },
};

通过provide和inject,我们可以在兄弟组件之间进行参数的传递,而不需要通过共同的父组件或事件总线来传递数据。这种方式可以在需要共享的数据较少且组件之间的关系密切的情况下使用,它提供了一种简洁的方式来传递数据。

标签:传参,vue,default,bus,兄弟,export,组件,Copy
From: https://www.cnblogs.com/liace/p/17692786.html

相关文章

  • vue2打包组件发布到npm
    1.使用vuecreateprojectName新建一个项目2.将src的文件夹名称改为example,便于我们调试代码3.增加packages文件夹,其下面的index.js代码如下importpanelfrom'./panel/index.vue'constcomponents=[panel]constinstall=function(Vue){if(install.i......
  • vue3下载文件
    constdow=async(url:string,fileName:string)=>{mulSelUrls.value=[]mulSelUrls.value.push(urlasnever)constrequests=mulSelUrls.value.map(url=>axios.get(url,{responseType:'blob'}));try{constresponses=aw......
  • vue项目成功引入element组件的具体步骤
    1、首先要确保vue项目能够成功在浏览器访问2、一般使用的是vue3那么,需要注意的是,element组件在vue3里面,需要使用的是element-plus命令:npminstallelement-plus--save--legacy-peer-deps下载完成之后,需要在main.js里面对element组件进行引入:importElementPlusfrom'ele......
  • vue使用富文本编辑器vue-quill-editor,含拖拽图片,调整默认高度
    这两天的工作用到了vue\-quill-editor,来记录一下使用心得/踩过的坑供大家参考。1、安装npminstall vue-quill-editornpminstallquill2、引入main.js里样式也记得引入:importVueQuillEditorfrom'vue-quill-editor'import'quill/dist/quill.core.css'import'quill/dist/qu......
  • 运行vue项目一直报错的问题的解决
    问题描述(上图为网图,自己的没来得及截图)问题解决第一个原因:vue版本过低;使用下面的语句进行版本升级:[email protected]但是我试了没啥用;第二个原因:node版本过低;使用下面的语句进行版本升级:--若是已经有更高级的版本,可以直接更换:nvmlistnvmuse版本--若是没有,就自己......
  • Vue组件传值方法
    使用propsprops是用于向子组件传递数据的一种方式。父组件可以将数据传递给子组件的props属性,子组件则可以通过props来访问这些数据。父组件:<template><div><child-component:message="message"></child-component></div></template>子组件:<template><div>{......
  • Vue进阶(幺陆柒):Vue 项目调试技能
    (文章目录)一、前言在Vue项目开发过程中,当遇到应用逻辑出现错误,但又无法准确定位的时候,知晓Vue项目调试技巧至关重要。同后台项目开发一样,可以在JS实现的应用逻辑中设置断点,并进行单步、进入方法内、跳出方法等调试,从而准确定位问题根源。本文主要讲解针对JetBrains系列WebStor......
  • 用vue开发新项目的前期步骤流程
     一、git代码托管平台1)注册登录:Gitee-基于Git的代码托管和研发协作平台2)在码云上传本地已存在项目:编辑编辑3)安装git::https://git-scm.com/4)克隆码云上的项目到本地:gitclone仓库地址5)搭建项目环境6)将代码上传到gitee.com的仓库中:git的使用,查看另外一篇文章二、搭建vue项目环......
  • 在springboot项目种引入element组件
    1、保证vue的版本在3以上2、Win+R--打开命令行窗口(cmd)输入下面的命令,打开图形化界面:vueui3、打开我们创建的vue项目选择路径即可自主导入项目;4、安装element-ui的插件依赖5、查看项目中是否存在ok!......
  • 鉴于vue2使用element组件不太方便,换成vue3的具体步骤
    1、卸载原有的vue2npmuninstallvue-cli-g卸载完成!2、按照最新的下载vue3命令下载vue3npminstall-g@vue-cli下载完成!(等了大概快10分钟)......