angular2 शैली गाइड - डॉलर चिह्न के साथ संपत्ति?


184

को देखते हुए angular2 कोड उदाहरण के लिए, हम $ साइन के साथ कुछ सार्वजनिक गुण देखें:

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

क्या कोई समझा सकता है:

  • क्यों $ का उपयोग किया जाता है (इस संकेतन के पीछे क्या कारण है? हमेशा सार्वजनिक संपत्तियों के लिए इसका उपयोग करें)
  • सार्वजनिक संपत्तियों का उपयोग किया जाता है, लेकिन विधियों का नहीं (उदाहरण के लिए मिशनअन्युमनेशन (), मिशनकॉन्फ़र्मेशन ()) - फिर, क्या यह ng2 ऐप के लिए एक सम्मेलन है?

ऐसा नहीं लगता कि आधिकारिक शैली गाइड में इस बारे में कुछ है ?

जवाबों:


265

$ प्रत्यय ( Cycle.js द्वारा लोकप्रिय ) का उपयोग यह दर्शाने के लिए किया जाता है कि चर एक अवलोकनीय है । यह इसे आधिकारिक स्टाइल गाइड के लिए भी बना सकता है लेकिन यह अभी तक नहीं है

यहाँ और पढ़ें: प्रत्यय डॉलर चिह्न $का क्या अर्थ है?

अपडेट: यहां पर कोणीय वेबसाइट पर "$" साइनिंग के बारे में और पढ़ें: https://angular.io/guide/rx-library#naming-conventions-for-observables


4
यह इसे आधिकारिक शैली गाइड के लिए नहीं बनाएगा। मैं उस पर $ 100 डालूँगा।
एरिक बिशर्ड ने

15
कोणीय डॉक्स में संदर्भ: angular.io/guide/rx-library#naming-conventions-for-observables
michelepatrassi

64
@ EricBishard का अर्थ है 100 डॉलर
TabsNotSpaces 16

1
वादों का क्या?
galki

7
नौकरी की सुरक्षा - आम आदमी के लिए समझने के लिए कोड को कठिन बनाएं।
जावा-आदी ३०१

14

$ नामकरण प्रतिमान आंद्रे साल्ट्ज़ के साथ उत्पन्न हुआ और उन सभी चर नामों का बहुवचन करने का सुझाव देता है जिनमें वेधशालाएँ या धाराएँ होती हैं।

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

एक अन्य दृष्टिकोण है चर नामों का बहुवचन करना जिसमें वेधशालाएं शामिल हैं या एक यूनिकोड वर्ण के साथ धाराएं जो शब्द के अंतिम अक्षर से मेल खाती हैं। यह उन शब्दों के साथ समस्या को संबोधित करता है जो "s" के साथ बहुवचन नहीं हैं।

mouse$ vs mic€

इनमें से किसी का भी नामकरण सम्मेलन आधिकारिक एंगुलर शैली गाइड में नहीं है। एक या दूसरे (या कोई नहीं) का उपयोग पूरी तरह से व्यक्तिगत प्राथमिकता पर निर्भर करता है।


10
cactu $ vs cactï
BYTE RIDER

अच्छा संदर्भ! इसके साथ ही, इस अनुच्छेद को देखें। मुझे जो परेशान करता है वह मेरे कोडबेस (अन्य सहकर्मियों) में ऐसा करने का प्रयास कर रहा है और इसे गलत पा रहा है, प्रत्यय को गलत चर पर डाल रहा है या इससे भी बदतर चर शुरू कर रहा है। मैंने देखा है कि लोग बिना किसी निरंतरता के भी इसका उपयोग करते हैं, इस मामले में यह पूरी तरह से कोई मतलब नहीं है। medium.com/@benlesh/…
एरिक बिशर्ड

यदि आप इसका उपयोग करते हैं, तो मैं इस रेपो में नामकरण परंपराओं का पालन करूंगा: github.com/bodiddlie/rxheroes/blob/master/app/effects/hero.ts और यह भी हमेशा या कभी नहीं। भगवान के दर्शन के लिए संगत रहें।
एरिक बिशर्ड

2
fish$बनामfish€$
मार्टिन श्नाइडर

11

अपडेट : https://angular.io/guide/rx-library#naming-conventions-for-observables

क्योंकि कोणीय अनुप्रयोगों को ज्यादातर टाइपस्क्रिप्ट में लिखा जाता है, आप आमतौर पर जानते होंगे कि एक चर एक अवलोकन योग्य है। यद्यपि कोणीय ढांचे में वेधशालाओं के लिए एक नामकरण सम्मेलन लागू नहीं होता है, आप अक्सर वेधशालाओं को एक अनुगामी "$" चिह्न के साथ देखेंगे।

यह उपयोगी हो सकता है जब कोड के माध्यम से स्कैनिंग और अवलोकन योग्य मूल्यों की तलाश हो। इसके अलावा, यदि आप एक हाल ही में एक माननीय से सबसे अधिक मूल्य संग्रहीत करने के लिए एक संपत्ति चाहते हैं, तो यह "$" के साथ या बिना एक ही नाम का उपयोग करने के लिए सुविधाजनक हो सकता है।


मूल :

मैंने $आधिकारिक नायक ट्यूटोरियल को पढ़ते समय चरों को समाप्त होते देखा :

<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>

बारीकी से देखें और आप देखेंगे कि * ngFor एक सूची पर आधारित है heroes$, जिसे हीरो नहीं कहा जाता है ।

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

$ एक कन्वेंशन है जो इंगित करता है कि हीरो $ एक ऑब्जर्वेबल है, न कि एक सरणी।

अधिकांश मामले यह हैं कि हम घटक में उन अवलोकनीय चर की सदस्यता नहीं लेते हैं। हम आमतौर पर AsyncPipe का उपयोग करके स्वचालित रूप से अवलोकनीय चर की सदस्यता लेते हैं

मुझे यह स्टाइल गाइड में नहीं मिला है क्योंकि Angular5.1 ने कल (6 दिसंबर, 2017) को रिलीज़ किया है।


कोणीय 9 शैली गाइड सेheroes: Observable<Hero[]>;
रिकार्डो सारासिनो

9

मैंने इसे $स्टाइल गाइड में नहीं देखा है, लेकिन मैंने देखा कि इसे सार्वजनिक संपत्तियों के लिए अक्सर इस्तेमाल किया जा रहा है जो कि वे पर्यवेक्षकों को संदर्भित करते हैं जिन्हें सब्सक्राइब किया जा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.