最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angular2進(jìn)階之如何避免Dom誤區(qū)

 更新時(shí)間:2018年04月02日 14:14:07   作者:常銀玲-Judy  
這篇文章主要介紹了Angular2進(jìn)階之如何避免Dom誤區(qū),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

前言

Angular2的設(shè)計(jì)目標(biāo)本來就是要讓瀏覽器和DOM獨(dú)立。DOM是復(fù)雜的,因此使組件與它分離,會(huì)讓我們的應(yīng)用程序,更容易測試和重構(gòu)。為了支持跨平臺(tái),Angular還通過抽象封裝了不同平臺(tái)的差異。

內(nèi)容

1.為什么不能直接操作DOM?

Angular2采用AOT靜態(tài)編譯模式,這種形式下需要我們的模板類型必須是穩(wěn)定和安全的,直接使用javascript和jquery語言是不穩(wěn)定,因?yàn)樗麄兊木幾g不會(huì)提前發(fā)現(xiàn)錯(cuò)誤,所以angular2才會(huì)選擇javascript的超集typescript語言(這種語言編譯期間就能發(fā)現(xiàn)錯(cuò)誤)。 

2.三種錯(cuò)誤操作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操作的機(jī)制?

為了能夠支持跨平臺(tái),Angular 通過抽象層封裝了不同平臺(tái)的差異。比如定義了抽象類 Renderer、Renderer2 、抽象類 RootRenderer 等。此外還定義了以下引用類型:ElementRef、TemplateRef、ViewRef 、ComponentRef 和 ViewContainerRef 等。 

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

product.component.html

<div>商品信息</div>
<ul>
 <li *ngFor="let product of dataSource| async as list">
  {{product.title}}
 </li>
</ul>
<div #dia>
</div>

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.
 *創(chuàng)建一個(gè)文本
 */
  this.dia.nativeElement.innerHTML="這只是一個(gè)測試的文檔";

 /**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");
 }
}

總結(jié)

學(xué)習(xí)一種語言其實(shí)我們首先應(yīng)該去遵循他的規(guī)范,接受他和之前語言的不同之處,然后再去深入理解和之前的方式不一樣在哪里,為什么這么做,否則我們無法理解這種語言的妙處,希望對(duì)你有幫助!

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用Angular7開發(fā)一個(gè)Radio組件的全過程

    利用Angular7開發(fā)一個(gè)Radio組件的全過程

    這篇文章主要給大家介紹了關(guān)于如何利用Angular7開發(fā)一個(gè)Radio組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Angular7具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • angular4中引入echarts的方法示例

    angular4中引入echarts的方法示例

    這篇文章主要介紹了angular4中引入echarts的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • AngularJS中filter的使用實(shí)例詳解

    AngularJS中filter的使用實(shí)例詳解

    這篇文章主要介紹了AngularJS中filter的使用實(shí)例詳解的相關(guān)資料,這里提供實(shí)例幫助大家理解掌握,希望能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • AngularJS通過$sce輸出html的方法

    AngularJS通過$sce輸出html的方法

    不知道大家有沒有發(fā)現(xiàn)在用AngularJS作為前端搭建個(gè)人博客的時(shí)候,發(fā)現(xiàn)用AngularJs輸出html的時(shí)候,瀏覽器并不解析這些html標(biāo)簽,這里我們需要其顯示angular輸出的html能被瀏覽器解析怎么辦呢?不知道Angularjs如何實(shí)現(xiàn)這種功能的通過這篇文章來看看吧。
    2016-09-09
  • AngularJS使用ng-options指令實(shí)現(xiàn)下拉框

    AngularJS使用ng-options指令實(shí)現(xiàn)下拉框

    這篇文章主要介紹了AngularJS使用ng-options指令實(shí)現(xiàn)下拉框效果,ng-option指令使用也很簡單,下文具體給大家說明,對(duì)angularjs 下拉框知識(shí)感興趣的朋友一起看下吧
    2016-08-08
  • 簡單實(shí)現(xiàn)AngularJS輪播圖效果

    簡單實(shí)現(xiàn)AngularJS輪播圖效果

    這篇文章主要教大家如何簡單實(shí)現(xiàn)AngularJS輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Angularjs之filter過濾器(推薦)

    Angularjs之filter過濾器(推薦)

    這篇文章主要介紹了Angularjs之filter過濾器的相關(guān)資料,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2016-11-11
  • AngularJS 最常用的功能匯總

    AngularJS 最常用的功能匯總

    angularjs功能在項(xiàng)目開發(fā)中經(jīng)常會(huì)用到,本文給大家總結(jié)了八種angularjs最常用的功能,感興趣的朋友一起學(xué)習(xí)吧
    2016-02-02
  • Angular6中使用Swiper的方法示例

    Angular6中使用Swiper的方法示例

    這篇文章主要介紹了Angular6中使用Swiper的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • AngularJS基礎(chǔ)知識(shí)筆記之表格

    AngularJS基礎(chǔ)知識(shí)筆記之表格

    這篇文章主要介紹了AngularJS基礎(chǔ)知識(shí)筆記之表格的相關(guān)資料,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

康平县| 保康县| 黄陵县| 攀枝花市| 郸城县| 任丘市| 永和县| 株洲市| 乃东县| 西乡县| 永登县| 平邑县| 远安县| 同心县| 宜州市| 玉屏| 类乌齐县| 辉南县| 兴化市| 原平市| 陇南市| 郎溪县| 湘潭县| 于田县| 九江市| 普宁市| 全州县| 石棉县| 聂荣县| 怀宁县| 海丰县| 巩留县| 卢龙县| 文山县| 邵阳县| 博客| 闽侯县| 锡林浩特市| 嵊州市| 烟台市| 汕尾市|