渲染器而不是本机元素方法?



这不是一个基于代码的问题,而且这是理论上的,谁能向我解释"为什么使用渲染器方法而不是使用本机元素方法"? 我已经搜索过,但我无法得到一个正确的想法。

这是有安全原因的

根据Angular docs Security:

当需要直接访问 DOM 时,使用此API作为最后的手段。允许直接访问 DOM 会使您的应用程序更容易受到 XSS 攻击

或者,您可以查看 Renderer,它提供的 API 即使在不支持直接访问本机元素时也可以安全使用。

因此,Render2总是比使用nativeElement直接操作 DOM 更可取

Renderer2 类是 Angular 以服务形式提供的抽象,允许操作应用程序的元素而无需直接接触 DOM。这是推荐的方法,因为它可以更轻松地开发可以在没有 DOM 访问权限的环境中呈现的应用程序,例如在服务器、Web worker 或本机移动设备上。

阅读更多