首页 >

使用Angular2时避免Dom误区

web前端|js教程使用Angular2时避免Dom误区
Angular2,误区,避免
web前端-js教程前言
演出网站系统源码,ubuntu如何添加域名,开启两个tomcat7,爬虫自动喂食器,北大青鸟可以学习php吗,seo.xiongmaolzw
Angular2的设计目标本来就是要让浏览器和DOM独立。DOM是复杂的,因此使组件与它分离,会让我们的应用程序,更容易测试和重构。为了支持跨平台,Angular还通过抽象封装了不同平台的差异。
丝袜控论坛整站源码,vscode编写html,ubuntu ceres,免费tomcat证书,sqlite软件电脑版,phpcmsv9插件开发,简答前端mv框架的意义,海关 rpa 爬虫禁止 公告,php长度函数,金融seo优化,腾讯云网站模板,问卷网页版导出,产品标签文字模板lzw
内容
aspx房产门户源码,在ubuntu安装php,tomcat安装提示有进程,爬虫请求库,php 数组函数常用,正定seo关键词排名优化公司lzw
1.为什么不能直接操作DOM?

Angular2采用AOT静态编译模式,这种形式下需要我们的模板类型必须是稳定和安全的,直接使用javascript和jquery语言是不稳定,因为他们的编译不会提前发现错误,所以angular2才会选择javascript的超集typescript语言(这种语言编译期间就能发现错误)。

2.三种错误操作DOM的方式:

@Component({ ... })export class HeroComponent { constructor(private _elementRef: ElementRef) {} doBadThings() {  $('id').click(); //jquery  this._elementRef.nativeElement.xyz = ''; //原生的ElementRef  document.getElementById('id'); //javascript }}

3.Angular2如何DOM操作的机制?

为了能够支持跨平台,Angular 通过抽象层封装了不同平台的差异。比如定义了抽象类 Renderer、Renderer2 、抽象类 RootRenderer 等。此外还定义了以下引用类型:ElementRef、TemplateRef、ViewRef 、ComponentRef 和 ViewContainerRef 等。

4.正确操作DOM的方式(ElementRef和Renderer2):

product.component.html

商品信息

  • {{product.title}}

product.component.ts

import { Component, OnInit,Renderer2, ViewChild,ElementRef,AfterViewInit} from '@angular/core';@Component({ selector: 'app-product', templateUrl: './product.component.html', styleUrls: ['./product.component.css']})export class ProductComponent implements OnInit,AfterViewInit { @ViewChild('dia') dia:ElementRef ;定义子试图 ngOnInit() { /**1. *创建一个文本 */  this.dia.nativeElement.innerHTML="这只是一个测试的文档"; /**2.  *添加click事件  */ let ul=this.element.nativeElement.querySelector('ul');  this.render2.listen(ul,"click",()=>{   this.render2.setStyle(ul,"background","blue");ngAfterViewInit(){/**3. *修改背景颜色 */ let li=this.element.nativeElement.querySelector('ul'); this.render2.setStyle(li,"background","red"); }}

总结

学习一种语言其实我们首先应该去遵循他的规范,接受他和之前语言的不同之处,然后再去深入理解和之前的方式不一样在哪里,为什么这么做,否则我们无法理解这种语言的妙处,希望对你有帮助!


使用Angular2时避免Dom误区
  • ionic2/angular2 不能访问laravel5.3 创建的api
  • ionic2/angular2 不能访问laravel5.3 创建的api | ionic2/angular2 不能访问laravel5.3 创建的api ...

    使用Angular2时避免Dom误区
  • Angular 2+ 样式绑定有哪些方式
  • Angular 2+ 样式绑定有哪些方式 | Angular 2+ 样式绑定有哪些方式 ...

    使用Angular2时避免Dom误区
  • 在Angular2中如何实现父子组件通信
  • 在Angular2中如何实现父子组件通信 | 在Angular2中如何实现父子组件通信 ...