角度 2 不断更新 DOM 位置的最佳方法



我正在用Angular(v4(构建一个游戏,并且完全意识到直接的dom操作很少(如果有的话(是Angular的正确途径。但是,对于我正在构建的内容,我不确定我是否看到了另一条可行的途径。

我需要的是一个组件,通过同时更新几个元素的旋转位置来处理它的dom(想想太阳系模型(。我看到有两种主要途径,第一种是直接 dom 操作,它会根据组件输入更改进行更新。第二个是具有内联样式标签的组件,例如[style.whatever]="thing.whatever".

我的第二条路线似乎仍然是直接的dom操作,只是不在javascript中。

我喜欢尽可能以"正确"的方式做事,所以任何输入都会有所帮助。

我在这个项目中根本不使用/计划/想要使用 JQuery。

更新

刚刚意识到我是个白痴,我不需要编程 DOM 更新,我只需要设置初始 css 属性,以便我需要它开始,以及动画速度。由于这是一个恒定的东西,有一个可预测的动画,我可以让css完成所有的工作。我仍然想知道在代码中设置这些 css 属性或作为组件的属性是否最合适。

在这里,我很快就想到了你能做什么(当然不全面(

使用绑定,例如:

@HostBinding('style.whatever')
whatever: thing

@HostListener('window:resize', ['$event'])
setHeight() {
this.height = 200px;
}

模板变量

@ViewChild('input') input: ElementRef;
<input #input ...>

最新更新