Vue3:组件间通信-$refs和$parent的使用

一、情景说明

我们在之前,学习了Vue3:标签的ref属性用法
我们知道,父组件中,给子组件使用ref标记后,获取到的是,子组件实例。
那么,我们就可以修改子组件实例暴露的变量值。

与之对应的是,子组件获取父组件的实例,从而修改父组件的变量值。

所以,这也可以理解为父子组件之间通信,更准确的说是,父子组件间修改数据。

父组件批量修改多个子组件数据:$refs
子组件修改父组件数据:$parent

二、案例

1、$refs用法

父组件
模板代码:参数$refs

		<button @click="getAllChild($refs)">让所有孩子的书变多</button>
		<Child1 ref="c1"/>
		<Child2 ref="c2"/>

按钮对应的函数代码
这里,就可以同时获取到c1和c2两个实例

	function getAllChild(refs:{[key:string]:any}){
		console.log(refs)
		for (let key in refs){
			refs[key].book += 3
		}
	}

两个子组件
暴露变量,这样父组件就可以操作该变量

	// 把数据交给外部
	defineExpose({book})

2、$parent用法

子组件
模板代码:参数$parent

<button @click="minusHouse($parent)">干掉父亲的一套房产</button>

按钮对应的函数代码

	function minusHouse(parent:any){
		parent.house -= 1
	}

父组件
暴露变量

	// 向外部提供数据
	defineExpose({house})

大家可能会疑问,父组件可以有多个子组件,所以,有对应的$refs
那么,子组件,也可以被多个父组件引用,那是否存在$parents呢?
明确的告诉你,Vue3中没有$parents!
但是,用另外一个办法实现了!

相关推荐

  1. Vue3组件通信-$refs$parent使用

    2024-04-05 20:30:02       18 阅读
  2. Vue2Vue3组件通信方式汇总(3)------$bus

    2024-04-05 20:30:02       48 阅读
  3. vueref $refs使用

    2024-04-05 20:30:02       37 阅读
  4. Vue2:使用pubsub-js实现组件通信

    2024-04-05 20:30:02       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-05 20:30:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-05 20:30:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-05 20:30:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-05 20:30:02       20 阅读

热门阅读

  1. MySQL数据库——2、删除数据库

    2024-04-05 20:30:02       13 阅读
  2. Redis持久化方式之快照和只追加文件

    2024-04-05 20:30:02       15 阅读
  3. sql工作文档(待优化版本)

    2024-04-05 20:30:02       16 阅读
  4. VUE中组件常用的通信方式有哪些?

    2024-04-05 20:30:02       19 阅读
  5. Linux内存管理 —— 通过实验学习和理解CoW(1)

    2024-04-05 20:30:02       15 阅读
  6. 2023年第15届12月STEMA

    2024-04-05 20:30:02       16 阅读
  7. 趋势跟踪-笔记

    2024-04-05 20:30:02       15 阅读
  8. 三、c++代码中的安全风险-open

    2024-04-05 20:30:02       16 阅读
  9. Linux空洞文件

    2024-04-05 20:30:02       16 阅读
  10. Docker

    Docker

    2024-04-05 20:30:02      18 阅读
  11. 方差分析注意事项

    2024-04-05 20:30:02       16 阅读
  12. Docker-部署、镜像容器管理、commit

    2024-04-05 20:30:02       19 阅读
  13. 设计模式——适配器模式06

    2024-04-05 20:30:02       15 阅读
  14. 设计模式|命令模式(Command Pattern)

    2024-04-05 20:30:02       14 阅读
  15. 每天学习python30分钟(第三天)

    2024-04-05 20:30:02       17 阅读