angular - ElementRef 和@ViewChild,不推荐?

标签 angular

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

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

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

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

最佳答案

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

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

关于angular - ElementRef 和@ViewChild,不推荐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54482150/

相关文章:

json - Angular 6 : use a service to get local json data

angular - 错误错误 : No provider for JwtHelper

css - 单击 angular2 在 <li> 元素上应用特定类

javascript - 分层缩进

javascript - 如何使用 ag grid angular 中的行类在 ag grid pinnedBottomRowData 上添加背景

angular - 如何在 angular2 的数组中的数组中设置补丁值(更新嵌套值)?

javascript - Angular 2点击带有空格的特定单词

javascript - Angular2,尝试添加新模块时出错

未显示 Angular Material 组件

javascript - 单击 anchor 元素时页面重新加载