首页 > 解决方案 > ElementRef 和@ViewChild,不推荐?

问题描述

我是 Angular 的新手,我试图理解:

没有 Elementref,@ViewChild 指令有什么用?

Elementref 直接访问 DOM?还是虚拟 DOM?

为什么 Angular 团队说:“允许直接访问 DOM 会使您的应用程序更容易受到 XSS 攻击。” 这意味着 Vanila JS 由于声称是危险的:JavaScript 访问 DOM?

标签: angular

解决方案


ViewChild是一个属性装饰器,可帮助您注入对组件或 DOM 引用的引用。
在您的情况下,您担心后者。ElementRef包装对 DOM 元素的引用。

Angular 提供了用于 DOM 操作的工具 - 例如Renderer- 具有内置的清理机制,如果您用于ElementRef修改 DOM,则需要处理自己的清理机制(因为您绕过了 Angular DOM 清理)以避免 XSS 攻击。如果您不修改 DOM,那么您在设计上是安全的。


推荐阅读