Explain Renderer2.
Skip to solutionKEEP THE
hardFrontend
Why use Renderer2 instead of direct DOM access?
338 views
01
Understand the problem
renderer2dom
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Nudge consolestandby
Stuck? Beam a request up — the console returns a conceptual nudge that guides your logic without spoiling the implementation.
03
Study the solution
Renderer2 abstracts DOM manipulation so your code works across platforms (server-side rendering, web workers) and stays safe from XSS. Directly touching nativeElement couples you to the browser and is discouraged.
Solution ready — 2 min read
Classified // press E to declassify
04
Read the code
Renderer2 instead of nativeElement
import { Directive, ElementRef, Renderer2, OnInit } from '@angular/core';
@Directive({ selector: '[appPin]', standalone: true })
export class PinDirective implements OnInit {
constructor(private el: ElementRef, private r: Renderer2) {}
ngOnInit() {
// ✅ platform-safe (works under SSR), instead of el.nativeElement.style...
this.r.setStyle(this.el.nativeElement, 'position', 'sticky');
this.r.addClass(this.el.nativeElement, 'pinned');
}
}05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.
Transmission complete // awaiting log
KEEP THE
STREAK ALIVE.
Dossier 111 of 121 decoded in the Angular track. One more won't hurt.