首页 > 解决方案 > 什么是 ViewChild 的好用例阅读:ElementRef

问题描述

我知道您可以使用 ViewChild(..., {read: ElementRef}) 访问 DOM 元素。但我的问题是你为什么要这样做?我能想到的每个用例都可以通过更典型的 Angular 机制更好地完成。

编辑:澄清一下,当我可以对可以通过绑定处理的元素做的所有事情时,为什么我想直接从我的组件中访问 DOM 元素?

标签: angular

解决方案


通过 ViewChild 引用元素,您可以始终如一地获取其更改,因为装饰器检测到 DOM 更改,如果没有它,您将需要每次在检测更改的逻辑中调用 querySelector 或其他东西。

假设您有一个*ngFor带有异步变量的列表,并且您必须在循环内引用一个元素。您需要等待它在屏幕上完成呈现,然后使用查询选择器来获取元素的数据,ViewChild 可以帮助您做到这一点,因为它会检测您的 DOM 何时发生更改。


推荐阅读