Angular2 এ উত্পাদন এবং বিকাশের মোডের মধ্যে পার্থক্য কী?


উত্তর:


77

বিকাশ মোডে, পরিবর্তন সনাক্তকরণ প্রথম রান করার সাথে সাথেই দ্বিতীয় রান করে এবং যদি কোনও বাঁধা মান প্রথম এবং দ্বিতীয় রানের মধ্যে পরিবর্তিত হয় তবে ত্রুটি তৈরি করে। এটি বাগগুলি সনাক্ত করতে সহায়তা করে যেখানে মানগুলি পরীক্ষা করার ক্ষেত্রে পার্শ্ব-প্রতিক্রিয়া বা ক্ষেত্র বা ফাংশনগুলি পরবর্তী কলগুলিতে একই মান ফেরত দেয় না যা Angular এর পরিবর্তন সনাক্তকরণকে ক্ষুন্ন করে।

বিকাশ মোডে, দ্বিতীয় পরিবর্তন সনাক্তকরণ চলাকালীন, কৌণিক কিছু গভীর বস্তুর তুলনাও করে যা এটি অনুমোদিত নয় যে মডেল পরিবর্তনগুলি সনাক্ত করতে এটি উত্পাদন করে না।

হালনাগাদ:

উন্নয়ন মোডে, একটি ইঙ্গিত এছাড়াও কনসোলে মুদ্রিত যখন এইচটিএমএল sanitizer সেবা বাইন্ডিং থেকে মানগুলি রেখাচিত্রমালা হয় [innerHTML]="..."বা [ngStyle]="..."। আরও দেখুন: আরসি .১ এ বাঁধাই সিনট্যাক্স ব্যবহার করে কিছু স্টাইল যুক্ত করা যায় না


4
আমি কীভাবে সনাক্ত করব যে আমি উত্পাদন মোডে বা বিকাশ মোডে চলছি?

আমি ইতিমধ্যে এটি জিজ্ঞাসা করা দেখেছি কিন্তু আমি কোনও উত্তর দেখিনি। আপনাকে প্রডাকশন মোড সুস্পষ্টভাবে সক্ষম করতে হবে এবং আপনি প্রোডমোড সক্ষম করার সময় আপনি কিছু মোড সক্রিয় তা জানতে আপনার কোডটিতে চেক করা যায় এমন কিছু বৈশ্বিক পরিবর্তনশীলও সেট করতে পারেন।
গন্টার জ্যাচবাউয়ার

6
এছাড়াও, আপনি যদি ডেভ মোডে চলতে থাকেন এবং আপনার ব্রাউজারে কনসোলটি খোলেন তবে এতে একটি বার্তা প্রিন্ট করা হবে যা "অ্যাঙ্গুলার 2 ডেভলপমেন্ট মোডে চলছে। প্রডাকশন মোড সক্ষম করতে সক্ষম করুনপ্রডমোড () কল করুন।" আপনি যদি ইতিমধ্যে উত্পাদন মোডে থাকেন তবে আপনি এখানে কিছুই দেখতে পাবেন না।
সিডুনালাপ

36

অ্যাপ্লিকেশনরেফ.টিক () রাষ্ট্রের জন্য দস্তাবেজগুলি :

বিকাশ মোডে, tick()আরও কোনও পরিবর্তন সনাক্ত না হয় তা নিশ্চিত করতে দ্বিতীয় পরিবর্তন সনাক্তকরণ চক্র (টিটিএল = 2 )ও সম্পাদন করে। যদি এই দ্বিতীয় চক্রের সময় অতিরিক্ত পরিবর্তনগুলি গ্রহণ করা হয় তবে অ্যাপ্লিকেশনটিতে বাইন্ডিংগুলির পার্শ্ব-প্রতিক্রিয়া রয়েছে যা একক পরিবর্তন সনাক্তকরণ পাসে সমাধান করা যায় না। এই ক্ষেত্রে, কৌণিক একটি ত্রুটি নিক্ষেপ করে, যেহেতু একটি কৌণিক অ্যাপ্লিকেশনটিতে কেবল একটি পরিবর্তন সনাক্তকরণ পাস থাকতে পারে যার সময় সমস্ত পরিবর্তন সনাক্তকরণ সম্পূর্ণ করতে হবে।

আমাদের অতিরিক্ত পরিবর্তন করতে না পারার কারণ হ'ল উত্পাদন মোডে, পরিবর্তন সনাক্তকরণ কেবল একবার চালিত হয় যার অর্থ উপাদান গাছের প্রতিটি উপাদান একবার পরীক্ষা করা হয় (টিটিএল = 1) ... শীর্ষ থেকে গভীরতা-প্রথম অর্ডার সুতরাং, উদাহরণস্বরূপ, যদি কোনও সন্তানের উপাদানগুলির ইনপুট সম্পত্তি পরিবর্তনের ফলে পিতা বা মাতা উপাদানটি একটি ভিউ / টেমপ্লেটে আবদ্ধ করে থাকে তবে পিতামণ্ডলের উপাদানটির দৃষ্টিভঙ্গি আপডেট করা হবে না (কারণ পরিবর্তন সনাক্তকরণ পুনরায় দেখাবে না উত্পাদন মোডে প্যারেন্ট উপাদান ... "ওয়ান পাস" ট্রি ট্রভারসাল কারণে। এটি কেবলমাত্র পরবর্তী সময়ে কিছু ঘটনা ঘটে আপডেট হবে এবং পরিবর্তন সনাক্তকরণ আবার চলবে - তবে অনেক দেরি হয়ে গেছে!

নিয়ম লঙ্ঘন করে এমন একটি প্লঙ্কার এখানে রয়েছে - একটি শিশু উপাদানটির setএকটি ইনপুট সম্পত্তিতে একটি পদ্ধতি থাকে যা অন্য ইনপুট সম্পত্তিটিকে পরিবর্তন করে। হ্যাঁ, এটি একটি স্বীকৃত উদাহরণ, তবে পরেরটির তুলনায় এটি বোঝা সহজ:

আর একটি দৃশ্য যেখানে আপনি এই সমস্যার মধ্যে পড়তে পারেন তা হল রাষ্ট্রীয় পাইপগুলি with পরীক্ষা করে দেখুন এই উত্তরটি যদি আপনার সমস্যা হয়েছে।

আপনার সমস্যাটি বর্ণনা করা উচিত (অন্য কোনও প্রশ্নে)। এটি ঠিক করার একটি উপায় থাকতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.