vue 组件传参

本文详细介绍了父子组件的两种模式,包括常规父子组件的导入注册与数据方法传递,以及特殊路由组件的父子关系。重点讲解了数据和方法如何在两者间双向流动,以及兄弟组件间的通信策略。涵盖了前端开发和组件化架构的关键知识点。
摘要由CSDN通过智能技术生成

一、父子组件的定义
  负值组件的定义有两种,我称为常规父子组件和特殊父子组件。

1.1、常规父子组件
  将其他组件以import引入用自定义标签接收,在当前组件中component里注册该标签,页面上可以直接用<自定义标签></自定义标签>样子使用。当前组件为父组件,被引入的组件为子组件。

引入子组件
在这里插入图片描述

注册子组件
在这里插入图片描述

使用子组件
在这里插入图片描述

1.2、特殊父子组件
  在路由中定义好组件,组件中含有children,页面上通过形式使用,也算是父子组件,当前组件为父组件,router-view路由的为子组件。

在这里插入图片描述

在main.vue中引入在这里插入图片描述

当前的main.vue为父组件,router-view引入的container.vue为子组件。

二、父组件的数据和方法函数传递到子组件
  2.1、常规父组件传参到子组件
  在main.vue父组件上的数据和方法:

在这里插入图片描述

在main.vue父组件上传递数据和方法:

在这里插入图片描述

在header.vue子组件上引入父组件传递过劳的数据和方法:
在这里插入图片描述

在header.vue子组件上使用父组件传递的数据和方法:

在这里插入图片描述

2.1、特殊父组件传参到子组件
  在main.vue父组件基本同上,区别在于传递父组件的方法函数时使用“v-on:”或”@“,而不是用“:“

在这里插入图片描述

在container.vue子组件上基本相同,区别在于接受父组件传递过来的方法函数不使用props,通过在methods中通过定义一个新方法,在方法体里面写this.$emit(‘testRouter’,’val’),以这种形式获取父组件的方法,在赋值给子组件新定义的方法,注意alert1是父组件中绑定时候自己定义的名字,val若该方法带参数则加上,不带则加空字符串即可。

在这里插入图片描述

三、子组件传递数据和方法函数到父组件中
  3.1、常规的子组件传递数据和方法到父组件中
   (1)传递数据:子组件主要通过事件传递数据给父组件

子组件定义一个方法,方法中通过this.$emit(‘transferNum’,this.num)方式发送数据num,父组件中监听transferNum事件,当事件触发时,执行函数,进行赋值。

子组件的数据和发送数据方法:

在这里插入图片描述

父组件中监听子组件中发送函数的方法,并赋值。

在这里插入图片描述

在这里插入图片描述

这样在父组件中就可以使用data中的num这个数据了。

(2)传递方法:子组件定义好方法,父组件在引用子组件的时候在自定义标签中添加标识符,ref=”child1”,用来表示这个子组件。父组件在methods中定义自己的方法名,方法主体:this. r e f s . c h i l d 1. f u n 。 意 思 是 通 过 调 用 refs.child1.fun。意思是通过调用 refs.child1.funrefs中名字叫child1的子组件里的fun方法,赋值给父组件。

子组件定义方法:
在这里插入图片描述

父组件中引用子组件时,添加一个标识符rel=’abc’,注意rel是语法,abc是标识

在这里插入图片描述

父组件中定义一个方法,主体内容如图,表示方法就是标识为aaa的子组件里的setFun方法。
在这里插入图片描述

调用gerFun方法

在这里插入图片描述

3.2、特殊的子组件传递数据和方法到父组件中
  经过测试,特殊的子组件传递数据和方法到父组件中与普通的子组件传递数据和方法到父组件中是一样的。

四、兄弟组件传值
  4.1 兄弟组件引入
  两个组件作为子组件被同一个父组件所引用
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.2、main.js里的设置
  
在这里插入图片描述

4.3、两个兄弟组件之间的语法
  组件Header.vue需要定义一个发送数据的方法,此处sendMsg是定义在此的方法,页面点击时候触发此函数,函数主体,通过Bus中央事件总线用$emit发送一个send事件,事件的功能就是传送一个“hello world!”的数据,区分sendMsg和send,前者是当前页面的点击事件,后者是发送出去,需要其他组件监听的事件。
在这里插入图片描述
在这里插入图片描述

组件Copy.vue中,在生命周期为created的时候,通过Bus中央事件总线用$on监听组件1中发送的send事件,用一个带参数的回调函数,接收穿过来的值,参数即为传的值 ,把值赋值给当前组件的变量。

在这里插入图片描述

兄弟组件间就不互相调用对方的方法了,多次使用的话就单独封装成一个方法在独立的js格式文件中,到时直接调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值