gpt4 book ai didi

javascript - Renderer2 Angular 有必要吗?

转载 作者:行者123 更新时间:2023-12-03 02:28:23 25 4
gpt4 key购买 nike

我知道 Angular 使用 Renderer2 类来操作我们的 View 。它充当 Angular 提供的抽象层,允许我们操作应用程序的元素,而不必自己直接接触 DOM。

ElementRef 也是操作 View 的方法,但 Angular 建议我们不要使用这个 because of security reasons.现在它与渲染器结合使用来像这样操作 DOM

import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';

@Directive({
selector: '[Randomdirective]'
})
export class Randomdirective{
constructor(private elRef: ElementRef, private renderer: Renderer2) {
}
@HostListener('click')
performTask() {
const li = this.renderer.createElement('li');
const text = this.renderer.createText('Click here to add li');
this.renderer.appendChild(li, text);
this.renderer.appendChild(this.elRef.nativeElement, li);
}
}

我从this source看到使用该渲染器是因为:

this approach makes it easier to develop apps that can be rendered in environments that don’t have DOM access, like on the server, in a web worker or on native mobile.

如果我不打算让我的应用程序在没有 DOM 访问权限的环境中运行,那么在 Angular 应用程序中直接操作 DOM 是否仍然是“不好的做法”?

如果是这样为什么? (例如安全/性能原因?)

最佳答案

如果你不打算使用 ssr,那么触摸 dom 是不好的做法,因为它不是 Angular 方式,有比 AppendChild 更好、更高效的方式,比如 *ngFor .. 虽然 Angular 也做了一些卫生工作等等

关于javascript - Renderer2 Angular 有必要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48845360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com