Renderer2,ViewChild和ElementRef。为什么我们需要/使用Angular中的这些东西?

时间:2018-01-20 04:47:03

标签: javascript angular

我是Angular的新手,我发现有一些像Renderer2ViewChildElementRef这样的东西是为了处理DOM而不是直接访问它。我遇到的文章说直接操纵DOM是一个坏主意,所以我们应该使用那些Angular的包装器,无论它是什么服务。所以它让我感到疑惑,在什么方面直接处理DOM是一个坏主意?任何见解都会受到赞赏!

2 个答案:

答案 0 :(得分:4)

当我们直接访问本机元素时,我们放弃了Angular的DOM抽象,错过了在非DOM环境中执行的机会,例如本机移动,本机桌面,Web工作者或服务器端呈现

请记住,Angular是一个平台,浏览器只是我们可以渲染应用程序的一个选项。

所以你要做的就是把这个责任交给这些班级。

答案 1 :(得分:2)

直接在Angular中处理dom是个坏主意"当你需要服务器渲染或使用不起作用的webworker时。它还可以让你更轻松地创建单元测试,因为你没有操作dom。