এনজিআরএক্স, অ্যাঙ্গুলারের জন্য প্রতিক্রিয়াশীল রাষ্ট্র পরিচালনার কাঠামো, সংস্করণ 22 প্রকাশ করেছে, অ্যাঙ্গুলারের রিসোর্স API কাস্টমাইজ করার জন্য শিপিং ইউটিলিটি, ইউনিয়ন প্রকারের জন্য গতিশীল গভীর সংকেত, একটি নতুন SignalStore টাইপিং হেল্পার এবং ESLint v10 সামঞ্জস্য।
প্রধান নতুন সংযোজন হল রিসোর্স এক্সটেনশন, একটি নতুন পরীক্ষামূলক মাধ্যমে বিতরণ করা হয় @ngrx/signals/resource প্রবেশ বিন্দু। কৌণিক এর resource এবং httpResource এপিআই রিসেট value() থেকে undefined পুনরায় লোড করার সময় এবং ত্রুটি অবস্থায় পড়ার সময় নিক্ষেপ করুন। রিসোর্স এক্সটেনশনগুলি একটি বিদ্যমান রিসোর্সকে মোড়ানো এবং মূল রিসোর্স টাইপ সংরক্ষণ করার সময় শুধুমাত্র সেই আচরণগুলিকে প্যাচ করে।
চারটি বিল্ট-ইন এক্সটেনশন অন্তর্ভুক্ত করা হয়েছে, একটি বরাবর provideResourceExtensions ফাংশন যা অ্যাপ্লিকেশন, রুট বা উপাদান স্তরে ডিফল্ট নিবন্ধন করে। মূল RFC-তে, মার্কো স্ট্যানিমিরোভিচ ব্যাখ্যা করেছেন যে ত্রুটির আচরণ পরিবর্তন করাও গভীরতার জন্য একটি পূর্বশর্ত SignalStore ইন্টিগ্রেশন, যেমন “একবার একটি সংস্থান ত্রুটির অবস্থায় প্রবেশ করে, যে কোনো পরবর্তীতে patchState কল নিক্ষেপ করবে কারণ এটি পড়ে value() অভ্যন্তরীণভাবে”।
প্রস্তাবটি ভালভাবে গৃহীত হয়েছিল, ম্যানফ্রেড স্টেয়ার উত্তর দিয়েছিলেন “লাভ এটা!” এবং একটি অ্যাক্টিভেশন সিগন্যালের পরামর্শ দিচ্ছেন, যখন অন্য মন্তব্যকারী সলিডজেএস-এর সাথে সমতা চেয়েছেন createResourceযেমন লোডারের ভিতরে বর্তমান মান অ্যাক্সেস।
DEV-তে একটি সম্প্রদায়ের রাউন্ডআপ উল্লেখ করেছে যে অ্যাঙ্গুলারের সাথে অনুরূপ আচরণ তৈরি করা যেতে পারে snapshot() এবং অতিরিক্ত স্টেট লজিক, কিন্তু “রিসোর্স এক্সটেনশনের সাথে, আপনি নিজেই রিসোর্সের উপরেই থাকবেন”, মান লেখার যোগ্য রেখে এবং আরও সুনির্দিষ্ট বজায় রাখুন httpResource টাইপ
কৌণিকের জন্য ট্যানস্ট্যাক ক্যোয়ারী একই রকম পূর্ববর্তী-ডেটা ধরে রাখার অফার করে যখন কোয়েরি কীগুলি স্থানধারক ডেটার মাধ্যমে পরিবর্তিত হয়: KeepPreviousData। আলাদাভাবে, NgRx Toolkit-এর withResource সম্প্রদায় নন-থ্রোয়িং সমর্থন করেছে অনির্ধারিত মান
এবং পূর্ববর্তী মান
; v20.6.0 থেকে সিগন্যালস্টোরের জন্য ত্রুটি-হ্যান্ডলিং কৌশল।
সংস্করণ 22 গভীর সংকেতকে গতিশীল করে তোলে। পূর্বে, একটি ইউনিয়ন হিসাবে টাইপ করা একটি রাষ্ট্রীয় স্লাইস, মডেল করার প্রাকৃতিক উপায় “এখনও লোড হয়নি”, একটি একক ফ্ল্যাট সিগন্যালে ভেঙে পড়ে। এখন প্রতিটি বস্তুর আক্ষরিক সদস্য তার নিজস্ব ডিপ সিগন্যাল পায়, চেক করার পরে সংকুচিত করার পরে পৌঁছানো যায়।
একটি নতুন SignalStoreFeatureType ইউটিলিটি একটি বৈশিষ্ট্য কারখানার রাষ্ট্র এবং সদস্যদের বের করে যাতে কাস্টম বৈশিষ্ট্যগুলি তাদের হাতে পুনঃঘোষণার পরিবর্তে ইনপুট প্রকার হিসাবে পুনরায় ব্যবহার করতে পারে। অন্যত্র, @ngrx/store-devtools লাভ একটি actionCreators Redux DevTools থেকে পাঠানোর বিকল্প, এবং @ngrx/eslint-plugin এখন ESLint v8 এবং লিগ্যাসি .eslintrc ফরম্যাট বাদ দেওয়ার সময় ESLint v10 সমর্থন করে। ডকুমেন্টেশন সাইট একটি হালকা থিম লাভ করে।
আপগ্রেড করার জন্য ডেভেলপারদের Angular 22, TypeScript 6.0 এবং RxJS ^6.5 বা ^7.5 প্রয়োজন এবং চলতে পারে ng update @ngrx/store@22বা ng update @ngrx/signals@22 শুধুমাত্র সিগন্যালস্টোর প্রকল্পের জন্য। বেশিরভাগ ব্রেকিং পরিবর্তনে স্বয়ংক্রিয় মাইগ্রেশন থাকে, v22 মাইগ্রেশন গাইড এবং চেঞ্জলগে বিস্তারিত। টিমগুলিকে আরও লক্ষ্য করা উচিত যে Angular 22 রিসোর্স টাইমিং পরিবর্তন করেছে, একজন ডেভেলপার রিপোর্টিং পরীক্ষার ব্যর্থতার সাথে যা পরবর্তীতে একটি ব্রেকিং পরিবর্তন হিসাবে Angular এর রিলিজ নোটগুলিতে যোগ করা হয়েছিল।
Angular v22 এর হ্যাকার নিউজ থ্রেডে, একজন ব্যবহারকারী লিখেছেন:
NGRX সংকেত হল নতুন উপায় এবং এটি সুন্দর। স্টেট হুক আপ করার জন্য 5টি ফাইল থাকার পরিবর্তে, এটির সাধারণত 1টি ফাইল এবং সমস্ত/সবচেয়ে কার্যকারিতা সহ-অবস্থিত থাকে।
যদিও অন্য একজন লক্ষ্য করেছেন যে:
আধুনিক কৌণিক v2 দিনের (অথবা এমনকি v4 দিন যখন আমি এটির সাথে প্রথম কাজ শুরু করি) ব্যবহার করার জন্য অনেক সুন্দর। অনেক প্রয়োজনীয় বয়লারপ্লেট আজকাল অপ্রয়োজনীয়। এমনকি RxJS এবং NgRXও ব্যবহার করার জন্য কম এবং কম প্রয়োজনীয় হয়ে উঠছে, যা দুর্দান্ত।
NgRx হল একটি ওপেন-সোর্স, প্রতিক্রিয়াশীল কৌণিক অ্যাপ্লিকেশন তৈরির জন্য সম্প্রদায়-চালিত কাঠামো, যা সংকেত-ভিত্তিক সিগন্যালস্টোরের পাশাপাশি স্টোর এবং প্রভাবগুলির সাথে বিশ্বব্যাপী রাষ্ট্র পরিচালনা প্রদান করে। এটি Nx এবং CodeRabbit দ্বারা স্পনসর করা হয়েছে এবং এর উৎস GitHub-এ উপলব্ধ।