Angular Render2你了解吗?

Render2

介绍

Render2 是angular中用于操作dom的,Angular做了封装,屏蔽底层差异,通用性更强。不仅仅可以用于浏览器端,还可以用于Server Side rendering, Web-Worker, mobile apps, and desktop apps等。

Render2之指令用法
  • setStyle、removeStyle
  # 定义指令
   import { Directive, ElementRef, OnInit, Renderer2, HostListener } from '@angular/core';
   @Directive({ 
       selector: '[animate]' 
   })
   export class Animate  {
   constructor(private renderer: Renderer2, private el: ElementRef) {}
       
   @HostListener('click') 
   performTask() {
       let randomColor = "#"+((1<<24)*Math.random()|0).toString(16);
       this.renderer.setStyle(this.el.nativeElement, 'color', randomColor);
       this.renderer.setStyle(this.el.nativeElement, 'background-color', 'black');   
       this.renderer.removeStyle(this.el.nativeElement, 'color','red');   
   }

   }
# html
<h2  animate>Click here to give me a random color</h2>
  • setAttribute、removeAttribute
@Directive({ 
    selector: '[defaultValue]' 
})
export class DefaultInputValueDirective {
  constructor(private elRef: ElementRef, private renderer: Renderer2) {
  }
  @HostListener('mouseover') 
  onMouseOver() {
      this.renderer.setAttribute(this.elRef.nativeElement, 'value', 'Enter a Value');
  }
  @HostListener('mouseleave') 
  onMouseLeave() {
      this.renderer.removeAttribute(this.elRef.nativeElement, 'value');
  }   
} 
  • addClass、removeClass
@Directive({ 
    selector: '[hlOnMouseOver]' 
})
export class HlOnMouseOverDirective {
  constructor(private elRef: ElementRef, private renderer: Renderer2) {
  }
  @HostListener('mouseover') 
  onMouseOver() {
      this.renderer.addClass(this.elRef.nativeElement, 'hl-text');
  }
  @HostListener('mouseleave') 
  onMouseLeave() {
      this.renderer.removeClass(this.elRef.nativeElement, 'hl-text');
  }   
}
  • removeChild、appendChild
@Directive({ 
    selector: '[removeChild]' 
})
export class RemoveChildDirective {
  constructor(private elRef: ElementRef, private renderer: Renderer2) {
  }
  p = this.renderer.createElement('p');
  t
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值