angular2 stil rehberi - dolar işareti olan özellik?


185

Angular2 kodu örneğine baktığımızda, $ işaretli bazı genel mülkler görüyoruz:

  <....>
  private missionAnnouncedSource = new Subject<string>();
  private missionConfirmedSource = new Subject<string>();
  // Observable string streams
  missionAnnounced$ = this.missionAnnouncedSource.asObservable();
  missionConfirmed$ = this.missionConfirmedSource.asObservable();
  <....>

Herkes açıklayabilir mi:

  • neden $ kullanılır (bu gösterimin arkasındaki neden nedir? bunu her zaman kamu mülkleri için kullanın)?
  • genel özellikler kullanılır ancak yöntemler kullanılmaz (örn. missionAnnouncements (), missionConfirmations ()) - yine bu ng2 uygulamaları için bir kural mı?

Resmi stil rehberinde bununla ilgili bir şey yok mu?

Yanıtlar:


266

Değişkenin bir Gözlenebilir olduğunu belirtmek için $ soneki ( Cycle.js tarafından popülerleştirilmiştir ) kullanılır . Resmi stil rehberine de götürebilir ama henüz orada değil

Daha fazlasını buradan okuyun: Son eklenmiş dolar işareti ne anlama $geliyor?

Güncelleme: Açısal web sitesindeki sondaki "$" işareti hakkında daha fazla bilgiyi burada bulabilirsiniz: https://angular.io/guide/rx-library#naming-conventions-for-observables


4
Resmi stil rehberine ulaşmayacaktır. Buna 100 dolar koyacağım.
Eric Bishard


66
@EricBishard Ortalama 100 $
TabsNotSpaces

1
vaatler ne olacak?
galki

7
iş güvenliği - layman için kodun anlaşılmasını zorlaştırır.
java-addict301

14

$ Adlandırma paradigması Andre Saltz'dan kaynaklanmıştır ve gözlemlenebilir veya akış içeren tüm değişken adlarının çoğullanmasını önerir.

getAll(): Observable<Zone[]>{
    let zone$ = this.http
      .get(`${this.baseUrl}/zones`, {headers: this.getHeaders()})
      .map(mapZone);
      return zone$;
  }

Başka bir yaklaşım, sözcüğün son harfiyle eşleşen bir unicode karakterle gözlemlenebilir veya akış içeren değişken adlarını çoğullaştırmaktır. Bu, "s" ile çoğullamayan kelimelerle ilgili sorunu giderir.

mouse$ vs mic€

Bu adlandırma kurallarının hiçbiri resmi Açısal stil kılavuzunda değildir. Birinin veya diğerinin (veya hiçbirinin) kullanımı tamamen kişisel tercihe bağlıdır.


10
cactu $ vs cactï
BYTE RIDER

Güzel referans! Ayrıca bu makaleye göz atın. Beni rahatsız eden şey, kod tabanımda (diğer iş arkadaşları) bunu yapmak için bir girişim bulmak ve yanlış yapmak, soneki yanlış değişkene koymak ya da daha da kötüsü değişkenle başlamaktır. İnsanların bunu tutarlılık olmadan kullandıklarını gördüm, bu durumda tamamen mantıklı değil. medium.com/@benlesh/…
Eric Bishard

Kullanacak olursanız , bu repodaki gibi adlandırma kurallarını takip etmenizi tavsiye ederim: github.com/bodiddlie/rxheroes/blob/master/app/effects/hero.ts Ve ayrıca her zaman veya asla yapmayın . Gözlenebilir tanrı aşkına tutarlı olun.
Eric Bishard

2
fish$vsfish€$
Martin Schneider

11

Güncelleme : https://angular.io/guide/rx-library#naming-conventions-for-observables

Açısal uygulamalar çoğunlukla TypeScript'te yazıldığından, genellikle bir değişkenin ne zaman gözlemlenebilir olduğunu bilirsiniz. Açısal çerçeve, gözlemlenebilirler için bir adlandırma kuralı zorunlu kılmasa da, genellikle sondaki "$" işaretiyle adlandırılan gözlemlenebilirleri görürsünüz.

Bu, kod aracılığıyla tarama yaparken ve gözlemlenebilir değerler ararken faydalı olabilir. Ayrıca, bir mülkün en son değeri gözlenebilir bir değerden saklamasını istiyorsanız, aynı adı “$” ile veya "$" olmadan kullanmak uygun olabilir.


Orijinal :

$Resmi kahraman eğitimini okurken değişkenlerin sona erdiğini gördüm :

<div id="search-component">
  <h4>Hero Search</h4>

  <input #searchBox id="search-box" (keyup)="search(searchBox.value)" />

  <ul class="search-result">
    <li *ngFor="let hero of heroes$ | async" >
      <a routerLink="/detail/{{hero.id}}">
        {{hero.name}}
      </a>
    </li>
  </ul>
</div>

Yakından bakın ve * ngFor'un kahramanlar değilheroes$ , adlı bir liste üzerinde yinelendiğini göreceksiniz .

<li *ngFor="let hero of heroes$ | async" >

$, Kahramanların $ bir dizi değil, bir Gözlemlenebilir olduğunu gösteren bir kuraldır.

Çoğu vaka, bileşendeki bu Gözlenebilir değişkenlere abone olmadığımızdır. Gözlemlenebilir değişkenlere otomatik olarak abone olmak için genellikle AsyncPipe kullanırız

Angular5.1 dün (6 Aralık 2017) yayınlandığından beri Stil Kılavuzu'nda bulamadım.


Açısal 9 stil rehberindenheroes: Observable<Hero[]>;
Ricardo Saracino

9

Bunu $stil rehberinde görmedim, ancak abone olabilen gözlemlenebilirlere atıfta bulunan kamu mülkleri için sık sık kullanıldığını gördüm.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.