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

淺談Angular7 項(xiàng)目開(kāi)發(fā)總結(jié)

 更新時(shí)間:2018年12月19日 10:15:12   作者:娜一抹驚鴻  
這篇文章主要介紹了淺談Angular7 項(xiàng)目開(kāi)發(fā)總結(jié),本文在此做一次遇到問(wèn)題的總結(jié),以便知識(shí)的掌握,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

由于公司需要,開(kāi)始學(xué)習(xí)angular,這個(gè)傳聞中學(xué)習(xí)曲線及其陡峭的前端框架,并開(kāi)始寫(xiě)第一個(gè)用angular的項(xiàng)目,截止今天初步完成現(xiàn)有需求,顧在此做一次遇到問(wèn)題的總結(jié),以便知識(shí)的掌握。

一、在angular項(xiàng)目中,如何使用錨點(diǎn)

在常規(guī)項(xiàng)目中,使用錨點(diǎn)用來(lái)做"智能"定位效果時(shí),只需這么寫(xiě):

<a href="#test" rel="external nofollow" >走你</a>
<div id="test">被定位區(qū)域</div>

但是在ng中,a標(biāo)簽中的href屬性會(huì)自動(dòng)的使用路由機(jī)制,最后的結(jié)果會(huì)被當(dāng)成跳轉(zhuǎn)的路由地址,具體的原因有待進(jìn)一步考證,反正最后的結(jié)果就是上面的寫(xiě)法不生效,生效寫(xiě)法:

<a router="./" [fragment]="test">來(lái)吧</a>
<div id="test">被定位區(qū)域</div>

二、組件中修改第三方UI庫(kù)樣式

之前中vue寫(xiě)項(xiàng)目的時(shí)候,會(huì)遇到組件風(fēng)格與第三方UI庫(kù)沖突的現(xiàn)象,用過(guò)vue的同學(xué)都了解,在vue中有個(gè)scoped這個(gè)作用域的概念,如果要自定義與UI庫(kù)沖突的地方有以下幾種方式:

  • 在App.vue文件中聲名樣式;
  • 在子組件中添加多個(gè)style標(biāo)簽;
  • 使用深度作用選擇器—— '>>>';
    • scss:.a /deep/ .b {...}
    • stylus: .a <<< .b{...}

那么在ng中個(gè)什么情況呢?首先需要了解ng渲染組件的機(jī)制,在ng中有一個(gè)東東叫showDOM;

解決方法:

在組件的.ts文件中

import { ViewEncapsulation } from '@angular/core';

@Commpoent({
  ...
  encapsulation: ViewEncapsulation.None
})

如果這樣還是覆蓋不了,那就查查類(lèi)名拼寫(xiě)啊、層級(jí)嵌套啊、和類(lèi)名的位置,我曾經(jīng)就是因?yàn)榘杨?lèi)名加的位置不對(duì)導(dǎo)致樣式不生效的,大家不要學(xué)我喲!

三、元素上添加自定義屬性

vue寫(xiě)法

<li v-for="(item,index) in list" :index="index">{{item.title}}</li>

ng寫(xiě)法

<li *ngFor="let item of list; index as i" [attr.index]="i"></li>

四、不使用npm引入第三方插件的用法之一

很多時(shí)候,我們需要用的某個(gè)插件可能在npm上沒(méi)有,或者由于各種版本問(wèn)題,導(dǎo)致使用的時(shí)候會(huì)有亂七八糟的bug,找原因,去解決,費(fèi)時(shí)費(fèi)力;

用了ng才能明白,以前用vue的時(shí)候是多么的幸福,使用vue常規(guī)業(yè)務(wù)在國(guó)內(nèi)基本都是即搜即用,ng就。。。嗯,學(xué)英語(yǔ)ing~。
解決方案:

  • 將如要用到的插件放入assets文件夾中;
  • 在根目錄下的index.html中script引入;
  • 在應(yīng)用的組件中使用(window as any).**;

ps: angular.json等其他方式也是可以的的,看各自實(shí)際情況而定;

五、監(jiān)聽(tīng)滾動(dòng)事件

使用Hostlistener`

 @HostListener('window:scroll', ['$event'])
 public onScroll = () => {
  do something
 }

使用fromEvent

 import { fromEvent } from 'rxjs'
 import { debounceTime } from 'rxjs/operators'
 export class Test{
  subscribeSoll;
  this.subscribeScoll = fromEvent(window,'scroll')
    .pipe(debounceTime(1000))
    .subscribe( (event) => {
      console.log(event);
    })
 }

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

相關(guān)文章

最新評(píng)論

阿合奇县| 宣城市| 高碑店市| 博白县| 于田县| 临朐县| 松潘县| 延长县| 天门市| 惠水县| 上犹县| 琼中| 象山县| 响水县| 土默特右旗| 兰西县| 宁陕县| 高邮市| 拉萨市| 武邑县| 惠水县| 广元市| 白玉县| 健康| 应城市| 清水县| 永嘉县| 漳州市| 绥宁县| 北辰区| 台北县| 青冈县| 曲沃县| 芜湖市| 青河县| 兰西县| 嘉峪关市| 富川| 昭通市| 玛纳斯县| 乐至县|