۱. مهاجرتهای خودکار
۲. برای تبدیل Observableها از bridge مربوطه یعنی toSignal() استفاده کنید.
نمونه بالا مقدار اولیه رو undefined ست میکنه که میشه مثل نمونه زیر با initialValue مقداردهی اولیه کرد signal مون رو:
۳. تبدیل Subjectها به Signal:
۴. جایگزین RXJS Operatorها با Computed:
بعضی موقعها، میخوایم بخشی از منطق RXJS رو نگه داریم چون خوب کار میکنه و از یه سری ویژگیهایی که معادل مستقیم مبتنی بر سیگنال ندارن مثل نمونه زیر که timer هست استفاده کنیم. تو این حالت، toSignal باز هم میتونه به عنوان یه Bridge عمل کنه و کل عملیات RX مون رو به signal تبدیل کنه:
نتیجهگیری به نظرم اینه که با جفت ویژگی ها تو صلح باشیم و از هرکدوم تو جای خودش استفاده کنیم و اگه از RXJS استفاده میکنیم از Memory leak جلوگیری کنیم و ازش اجتناب کنیم و البته که استفاده غیراصولی از Signal هم میتونه side effectهای Memory leak داشته باشه ولی مدیریتش راحتتر از RX هست و همچنین لذت استفاده از signal به نظرم، باعث جلوگیری از استفاده چندین operator و کم کردن تعداد boilerplateهای زیادی که قبلا مینوشتیم رو به ارمغان میاره برامون.
#angularsignal
#angularcafe
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
👍3❤1
کافه انگولار
https://www.youtube.com/watch?v=ADmhaJS_f1E
مقداری در این مورد مطالعه کنید به مرور بیشتر در موردش صحبت میشه خیلی خوبه و جالبه
❤4
برای مدیریت Monorepoها یه روش مرسوم NX هست که هنوزم خیلی فراگیر نشده بازم ولی یه Turborepo هم هست که شاید کمتر شنیده شده باشه که سرعت خیلی بالاتری نسبت به NX داره
اگه تجربه هرکدوم رو دارید باهامون به اشتراک بذارید
https://github.com/vercel/turborepo
https://github.com/nrwl/nx
#monorepo
#angularcafe
اگه تجربه هرکدوم رو دارید باهامون به اشتراک بذارید
https://github.com/vercel/turborepo
https://github.com/nrwl/nx
#monorepo
#angularcafe
❤3👏1
اگه از Angular SSR نسخه +۲۰ استفاده میکنید حتما patch امنیتی جدید رو دریافت کنید
ریسک این باگ امنیتی High هست
دستور آپدیت پج در نسخه ۲۲
#angularssr
#angularcafe
ریسک این باگ امنیتی High هست
دستور آپدیت پج در نسخه ۲۲
ng update @angular/core@22.0.7 @angular/cli@22.0.7
#angularssr
#angularcafe
👍5
https://uisfx.com/
یه کتابخانه کوچک و کامل پر از افکتهای صوتی رابط کاربری برای interactive کردن UI تون که خیلی مدرن و باحال میکنه کارو
#angularcafe
یه کتابخانه کوچک و کامل پر از افکتهای صوتی رابط کاربری برای interactive کردن UI تون که خیلی مدرن و باحال میکنه کارو
#angularcafe
UI SFX
UI SFX: 936 Open-Source Interface Sound Effects
78 semantic UI cues in 12 switchable feels. Preview, install, and ship clean one-shots and seamless loops for web, mobile, SaaS, and games.
👍4
CSS Variable Namespacing - #68846
چه PR جذابی 🤩
https://github.com/angular/angular/pull/68846?_sc=NTk5NDc4NyMxMDM5NA%3D%3D
#angularcafe
چه PR جذابی 🤩
https://github.com/angular/angular/pull/68846?_sc=NTk5NDc4NyMxMDM5NA%3D%3D
#angularcafe
❤3
https://namethatui.com/
اگه اسم یک سری Elementهای مورد استفاده در روزمره تو کارهامون رو نمیدونین یا میخواستین دنبال یه آیتمی بگردین که اسم اش رو یادتون رفته این سایت میتونه گوشه ذهنتون باشه که هر کدوم از elementها اسم شون چیه و کاربردشون چیه
#designtools
#angularcafe
اگه اسم یک سری Elementهای مورد استفاده در روزمره تو کارهامون رو نمیدونین یا میخواستین دنبال یه آیتمی بگردین که اسم اش رو یادتون رفته این سایت میتونه گوشه ذهنتون باشه که هر کدوم از elementها اسم شون چیه و کاربردشون چیه
#designtools
#angularcafe
❤1👍1
https://www.getlayers.ai/
یه سایت خفن که prompt های آماده فوق عجیب میده ولی پولی 🤒
ولی ایده هایش قشنگ هست میشه ایده ها رو بدی به AI و تا حدودی همون شکل پیادهش کنه
#AI
#angularcafe
یه سایت خفن که prompt های آماده فوق عجیب میده ولی پولی 🤒
ولی ایده هایش قشنگ هست میشه ایده ها رو بدی به AI و تا حدودی همون شکل پیادهش کنه
#AI
#angularcafe
GetLayers
GetLayers — An AI-native library of templates.
Your AI builds generic — we make it cinematic. A curated library of templates, prompts, and 3D scenes, hand-crafted by Textura Agency, so what you ship doesn't look like everyone else's.
👍1
کافه انگولار
بیایید از تیریک هایی که باعث بشه اکانت Claude تون بن نشه بگید بقیه هم یاد بگیرن 👌
تجربه شخصیم:
با Apple gift card به اندازه پکیج Claude که میخواین خریداری کنید، حسابتون رو شارژ کنید
از VPN با IP ثابت استفاده کنید و ترجیحا آمریکا باشه
هر مقدار پکیج که میخواین خریداری کنید به اندازه ۱۰ درصد مالیات هم به کیف پول تون اضافه Gift card بزنید
20$ Claude + 2$ Tax
125$ Claude +12.5$ Tax
چون من همون مقدار Claude رو شارژ کردم و موقع تکمیل کردن Transaction خطای Insufficient remaining credit میداد ولی نمیگه که چرا و باید Tax مثلا بخوره به Paymentتون
پس حتما به اندازه Tax هم Gift card بریزید به حساب تون
سوال دیگه ای داشتید پیام بدید 👌🏾
#AI
#Claude
#angularcafe
با Apple gift card به اندازه پکیج Claude که میخواین خریداری کنید، حسابتون رو شارژ کنید
از VPN با IP ثابت استفاده کنید و ترجیحا آمریکا باشه
هر مقدار پکیج که میخواین خریداری کنید به اندازه ۱۰ درصد مالیات هم به کیف پول تون اضافه Gift card بزنید
20$ Claude + 2$ Tax
125$ Claude +12.5$ Tax
چون من همون مقدار Claude رو شارژ کردم و موقع تکمیل کردن Transaction خطای Insufficient remaining credit میداد ولی نمیگه که چرا و باید Tax مثلا بخوره به Paymentتون
پس حتما به اندازه Tax هم Gift card بریزید به حساب تون
سوال دیگه ای داشتید پیام بدید 👌🏾
#AI
#Claude
#angularcafe
👍3
https://procedural-sounds.vercel.app/
https://github.com/m1ckc3s/procedural-sounds
برای operationهای سایت و پنلهامون اگه sound interaction اضافه کنیم بسیار جذاب و سرگرم کننده میشه در عین حال کاربردپذیری بیشتری هم داره
#sountkit
#angularcafe
https://github.com/m1ckc3s/procedural-sounds
برای operationهای سایت و پنلهامون اگه sound interaction اضافه کنیم بسیار جذاب و سرگرم کننده میشه در عین حال کاربردپذیری بیشتری هم داره
#sountkit
#angularcafe
procedural-sounds.vercel.app
Procedural interface sounds, with taste
Generate UI sounds that fit: taps, toggles, notifications, transitions. Designed by AI, tuned by human ears. Play in the browser, export as a file or one line of code.
👏3
https://sceneai.art/
دنیای طراحی سایتها داره وارد یه عصر جدید میشه
دیگه ازون مدل های خسته کننده و بی روح داریم فاصله میگیریم
این سایت کلی prompt و ایده animationمحور داره که میتونه بهمون کمک کنه از کارفرما ها پول بیشتری بگیریم 😁
#AI
#angularcafe
دنیای طراحی سایتها داره وارد یه عصر جدید میشه
دیگه ازون مدل های خسته کننده و بی روح داریم فاصله میگیریم
این سایت کلی prompt و ایده animationمحور داره که میتونه بهمون کمک کنه از کارفرما ها پول بیشتری بگیریم 😁
#AI
#angularcafe
👏4