فارسی
باز کردن در Telegram

پست ۱. مهاجرت‌های خودکار

19 ژوئیه 2026
ک
کافه انگولار
۱. مهاجرت‌های خودکار ng generate @angular/core:signal-input-migration ng generate @angular/core:output-migration ng generate @angular/core:signal-queries-migration ۲. برای تبدیل Observableها از bridge مربوطه یعنی toSignal() استفاده کنید. // Before data$ = this.http.get(this.API_URL); // Converting to Signal data = toSignal(this.data$); نمونه بالا مقدار اولیه رو undefined ست میکنه که میشه مثل نمونه زیر با initialValue مقداردهی اولیه کرد signal مون رو: // Without default value rates: Signal<Rates | undefined> = toSignal(this.rates$); // With default value rates: Signal<Rates> = toSignal(this.rates$, {initialValue: {USD: 1, EUR: 1, GBP: 1}} ); ۳. تبدیل Subject‌ها به Signal: // Subject version currentCurrency = new BehaviorSubject<CurrencySymbol>(DEFAULT_CURRENCIES[0]); // Signal version currentCurrency = signal<CurrencySymbol>(DEFAULT_CURRENCIES[0]); ۴. جایگزین RXJS Operator‌ها با Computed: // RxJs code currentExchangeRate$ = combineLatest([ this.exchangeRates$, this.currentCurrency$ ]).pipe( map(([rates, current]) => rates[current.code as keyof ExchangeRates]) ); // Equivalent Signal based version currentExchangeRate = computed( () => this.exchangeRates()[this.currentCurrency().code] ); بعضی موقع‌ها، می‌خوایم بخشی از منطق RXJS رو نگه داریم چون خوب کار می‌کنه و از یه سری ویژگی‌هایی که معادل مستقیم مبتنی بر سیگنال ندارن مثل نمونه زیر که timer هست استفاده کنیم. تو این حالت، toSignal باز هم میتونه به عنوان یه Bridge عمل کنه و کل عملیات RX مون رو به signal تبدیل کنه: // RxJs code exchangeRates$: Observable<ExchangeRates> = timer(0, 3600000) .pipe( switchMap(() => this.http.get<any>(this.API_URL)), map(data => ({ USD: 1, EUR: data.rates.EUR, GBP: data.rates.GBP })) ); // Simple Signal conversion with toSignal() exchangeRates = toSignal(this.exchangeRates$); نتیجه‌گیری به نظرم اینه که با جفت ویژگی ها تو صلح باشیم و از هرکدوم تو جای خودش استفاده کنیم و اگه از RXJS استفاده میکنیم از Memory leak جلوگیری کنیم و ازش اجتناب کنیم و البته که استفاده غیراصولی از Signal هم میتونه side effect‌های Memory leak داشته باشه ولی مدیریتش راحت‌تر از RX هست و همچنین لذت استفاده از signal به نظرم، باعث جلوگیری از استفاده چندین operator و کم کردن تعداد boilerplate‌های زیادی که قبلا مینوشتیم رو به ارمغان میاره برامون. #angularsignal #angularcafe
1 · 185 ·

در همان حوالی فید

ککافه انگولارhttps://kinetics.colorion.co/ککافه انگولارتبدیل RXJS به Signal: الگوها، مشکلات و نکات کاربردی
این پیام
ککافه انگولارhttps://amicro.vercel.app/ککافه انگولارhttps://orbs.jakubantalik.com/ برای بخش های AI دار پروژه تون ازینا بذارین خیلی باحاله
ککافه انگولارکافه انگولار@angularcafe · کانال
141مشترک7پست در 30 روز
فید انجمن باز کردن در Telegram

فید عمومی باز از ایندکس جست‌وجو ChatCrawler — «Google برای Telegram عمومی»؛ با خزش انجمن به‌روز می‌شود. زمان‌ها به UTC است.

فقط محتوای عمومی، API رسمی Telegram. دربارهٔ ما · پرسش‌ها · محدودیت‌های ایندکس · حذف یک صفحه · کاتالوگ · جست‌وجو · روش محاسبهٔ ما