প্রতিক্রিয়া বনাম কৌণিক - কোনটি আরও ভাল এবং কেন?

কৌণিক / প্রতিক্রিয়া - সর্বাধিক জনপ্রিয় দুটি ফ্রন্ট এন্ড ফ্রেমওয়ার্ক।

নতুনদের জন্য চূড়ান্ত তুলনা এবং বিশ্লেষণ গাইড।

প্রতিক্রিয়া এবং কৌণিক সম্পর্কে অনেক কিছু বলা এবং লেখা হয়েছে। কোনটি সম্পর্কে ভাল এবং কেন? উভয়েরই নিজস্ব উপকারিতা এবং মতামত রয়েছে এবং এটি বোঝা গুরুত্বপূর্ণ যে কোনও কাঠামোই সেরা নয়। আমি এক দৃ strongly়ভাবে তাই বিশ্বাস করি। তবে আমি এটিও বিশ্বাস করি যে প্রদত্ত সমস্যা বিবৃতি বা একটি দৃশ্যের জন্য সর্বদা একটি কাঠামো থাকবে যা অন্যদের চেয়ে বেশি কার্যকর and যে নির্দিষ্ট অ্যাপ্লিকেশন জন্য একটি নির্দিষ্ট কাঠামো।

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

এই ব্লগের উদ্দেশ্য হ'ল এই দু'টি জনপ্রিয় ফ্রেমওয়ার্কের মধ্যে বেছে নেওয়ার জন্য দ্বিধায় থাকা বিকাশকারীদের মধ্যে বিভ্রান্তি হ্রাস করা। যদিও এই ব্লগটি প্রাথমিকভাবে, ওয়েব কীভাবে কাজ করে তার মৌলিক বোঝার জন্য, কীভাবে একক পৃষ্ঠাগুলির অ্যাপ্লিকেশনগুলি কাজ করে এবং একটি মৌলিক জ্ঞান জাভাস্ক্রিপ্ট প্রয়োজনীয়।

আমি বিভিন্ন বিষয়গুলির জন্য এই দুটি ফ্রেমওয়ার্ককে রেট করার জন্য যে কারণগুলি বিবেচনা করেছি সেগুলি হ'ল -

  • পঠনযোগ্যতা (কোডটি পড়তে এবং বুঝতে এটি কত সহজ)
  • লেখার যোগ্যতা (নির্দিষ্ট মডিউলটি প্রয়োগ করা কত সহজ)
  • পরিচালনাযোগ্যতা (বড় অ্যাপ্লিকেশনগুলির সাথে ডিল করার সময় একটি বড় সমস্যা)

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

সম্প্রদায়

আমাদের যে কোনও পছন্দ করার আগে বিকাশকারী সম্প্রদায়ের আকার সর্বদা মাথায় রাখা উচিত। অ্যাঙ্গুলার গুগল দ্বারা তৈরি করা হয়েছে এবং ফেসবুক দ্বারা প্রতিক্রিয়া। উভয় ফ্রেমওয়ার্ক অত্যন্ত জনপ্রিয় এবং সারা বিশ্ব জুড়ে বিশাল সম্প্রদায় রয়েছে। কৌণিক একটি পুরানো কাঠামো যে কারণে, এটি এই ক্ষেত্রে প্রতিক্রিয়া দেখা দিতে পারে। এটি বলার পরে, আপনি ফ্রেমওয়ার্কগুলির জন্য যেকোন উপাদান, কোর্স এবং অনলাইনে সহায়তা পেতে পারেন।

গতি এবং পারফরম্যান্স

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

শেখার বক্ররেখা

কৌণিকের সাথে তুলনা করার সময় আমি ব্যক্তিগতভাবে শিখতে আরও সহজ প্রতিক্রিয়া পেয়েছি। সম্ভবত প্রতিক্রিয়া সম্পর্কে সর্বোত্তম জিনিস হ'ল এটি জাভাস্ক্রিপ্ট ছাড়া কিছুই নয়। নোট করুন যে প্রতিক্রিয়াটি আশা করে যে বিকাশকারী জাভাস্ক্রিপ্টের সর্বশেষ es6 এবং এস 7 সংস্করণটি তার সেরা অনুশীলনটি অনুসরণ করার জন্য শিখতে এবং জাহাজে উঠবে। এমনকি ডিওএম ম্যানিপুলেশনস এবং ডায়নামিক ডেটা রেন্ডারিং জেএসএক্সের মাধ্যমে করা হয়, এটি উচ্চতর অর্ডার ল্যাঙ্গুয়েজ যা ব্যবহারকারীদের জাভাস্ক্রিপ্ট এবং এইচটিএমএল কোড একসাথে মিশ্রিত করতে সক্ষম করে। জেএসএক্স ব্যবহার করে আমরা বেশিরভাগ গতিশীল রেন্ডারিং লজিককে প্রতিক্রিয়াতে লিখি। যেহেতু সবকিছুই মূলত জাভাস্ক্রিপ্ট, তাই আমরা আসলে কোডিংয়ে ডুব দিতে পারি।

জেএসএক্স জাভাস্ক্রিপ্টের সাথে এইচটিএমএল মিশ্রণ করছে

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

কৌণিকের টেম্প্লেটিং ভাষা ব্যবহার করা

সাধারণ ক্ষেত্রে কোড পুনরুদ্ধারযোগ্যতা

প্রতিক্রিয়ার ইতিবাচক বিষয়গুলি এ ক্ষেত্রে নেতিবাচক হয়ে ওঠে। অ্যাপ্লিকেশনটির আকার এবং কোডটি বাড়ার সাথে সাথে জেএসএক্স কোডের আকার বাড়তে থাকে এবং এটি পরিচালনা এবং এটি পড়া ক্রমশ কঠিন হয়ে পড়ে। এইচটিএমএল এবং জাভাস্ক্রিপ্ট মিশ্রন যদিও traditionতিহ্যগতভাবে একটি খারাপ অভ্যাস হিসাবে বিবেচিত হয়, প্রতিক্রিয়া জেএসএক্স ব্যবহার করে এবং এটি কীভাবে পূর্ণ ব্যবহার হতে পারে তা দেখায়। তবে এর ট্রেডঅফস ছাড়া নয়। কোড রিডিবিলিটি অবশ্যই বৃহত্তর অ্যাপ্লিকেশনগুলি তৈরি করার সময় ক্ষতিগ্রস্থ হয়। এটি স্বতন্ত্র ব্যক্তির উপর নির্ভর করে, আপনি যদি এতে স্বাচ্ছন্দ্য বোধ করেন তবে আপনি এটির সাথে এগিয়ে যেতে পারেন।

অন্যদিকে কৌণিক, কোনও সময়ে এইচটিএমএল এবং টাইপস্ক্রিপ্ট মিশ্রিত করে না। অ্যাপ্লিকেশনটি যত বড় হয় তা বিবেচ্য নয়। যদিও কৌণিকের কয়েকটি নতুন ধারণাটি শিখতে কিছুটা সময় লাগতে পারে, একবার আপনি এতে স্বাচ্ছন্দ্য বোধ করলে এটি খুব সহজ হয়ে যায় এবং কোনও উপাদান বা পুরো প্রয়োগের আকার বৃদ্ধির সাথে কোড পাঠযোগ্যতা হ্রাস পায় না।

তবে আবার এটি পৃথক ব্যক্তির উপর নির্ভর করে। আপনি যদি জাভাস্ক্রিপ্টে জটিল কোড লেখার ক্ষেত্রে স্বাচ্ছন্দ্য বোধ করেন তবে আপনি প্রতিক্রিয়া দিয়ে এগিয়ে যেতে পারেন। তবে আপনি যদি একজন সাধারণ কোড সাধারণ মানুষের মতো মানুষ হন তবে কৌণিক নিয়ে এগিয়ে যান।

প্রকল্পের স্ট্রাকচারিং

আমি ব্যক্তিগতভাবে লক্ষ্য করেছি যে কৌণিক বেশিরভাগ ক্ষেত্রে আপনাকে সর্বোত্তম অভ্যাস অনুসারে আপনার প্রকল্পটি গঠনে বাধ্য করে না forces আপনাকে প্রতিটি উপাদানগুলির এইচটিএমএল ফাইল, সিএসএস ফাইল এবং টিএস ফাইল পৃথক করতে হবে। এটি প্রকল্পের কাঠামোটিকে খুব সহজ করে তোলে এবং বিশাল কোড বেস সহ বৃহত অ্যাপ্লিকেশনগুলি বজায় রাখা খুব সহজ।

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

এখন আমরা প্রথম প্রান্তের ফ্রেমওয়ার্কগুলি ব্যবহার করার সময় কিছু মূল সমস্যাগুলি শুরু করি এবং তারা উভয় ফ্রেমওয়ার্কগুলিতে বাস্তবায়ন করতে কতটা সহজ তার সাথে তাদের তুলনা শুরু করব।

ডেটা বাইন্ডিং।

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

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

কৌণিকের মধ্যে

অন্যদিকে প্রতিক্রিয়া বাক্সের বাইরে বাইন্ডি বাঁধা দ্বি-উপাত্তের ডেটা সরবরাহ করে না। প্রতিটি উপাদানটির জন্য দ্বিমুখী ডেটা বাঁধাই প্রয়োগ করতে আমাদের স্পষ্টভাবে কোড লিখতে হবে। কেউ তর্ক করতে পারে যে দ্বিমুখী ডেটা বাঁধাই বাস্তবায়ন করা মোটামুটি সহজ এবং বিদ্যমান কোডটিতে কোডের একটি লাইন যুক্ত করে এটি করা যেতে পারে, কল্পনা করুন যে শত শত ইনপুট উপাদানগুলি কার্যকর করতে হবে যার জন্য আমাদের দ্বি-দ্বি ডেটা বাঁধাই বাস্তবায়ন করতে হবে। অবশ্যই খুব বড় কাজ এবং কোড পঠনযোগ্যতার ব্যয়। মূলত আমরা ইনপুট উপাদান থেকে অন চেঞ্জ ইভেন্টটি শুনছি এবং একটি অনুষ্ঠানের মাধ্যমে এই ইভেন্টটি পরিচালনা করব ling

প্রতিক্রিয়ায় দ্বিমুখী ডেটা বাঁধাই। props.changed একটি ফাংশন যা কার্যকর হয় যখনই উপাদানটির মান পরিবর্তন হয়। সুতরাং ফাংশন কোড পাশাপাশি প্রয়োগ করতে হবে।

কোড পাঠযোগ্যতা: কৌণিক

কোডের লিখনযোগ্যতা: একটি পরিমাণে, কৌণিক

আপনি যদি ভাবেন যে আপনার অ্যাপ্লিকেশনটির এইচটিএমএল উপাদান এবং ভেরিয়েবলগুলির মধ্যে প্রচুর দুটি উপায় বাঁধাই করা দরকার এবং এর উপর প্রচুর অপারেশন করেন তবে কৌণিকটি নিয়ে এগিয়ে যান। যদি আপনি মনে করেন যে ডেটা বাইন্ডিংয়ের জন্য আপনার খুব বেশি ব্যবহার না হয় তবে আপনি প্রতিক্রিয়া নিয়ে এগিয়ে যেতে পারেন।

ডায়নামিক বিষয়বস্তু রেন্ডারিং

গতিশীল বিষয়বস্তু রেন্ডারিং কোনও ওয়েব অ্যাপ্লিকেশনের একটি মূল সমস্যা। অ্যাপ্লিকেশনটিতে ভেরিয়েবলের অবস্থার উপর নির্ভর করে আমাদের নির্দিষ্ট উপাদানগুলি রেন্ডার করতে বা নির্দিষ্ট উপাদানগুলি ফেলে দিতে হতে পারে। উদাহরণস্বরূপ, প্রদর্শিত পোস্টগুলির তালিকাটি গতিশীল এবং রান সময় রেন্ডার করতে হবে।

আমি ব্যক্তিগতভাবে কৌণিকের চেয়ে গতিশীল সামগ্রী রেন্ডার করতে আরও সহজ বলে প্রতিক্রিয়া পেয়েছি। কেবল জেএসএক্সের শক্তির কারণে এবং এটি কী কী রেন্ডার করতে হবে এবং কী নয় তা আমাদের কতটা স্বাচ্ছন্দ্যের সাথে আমাদের চয়ন করতে দেয়। প্রতিক্রিয়াটি এই তথ্যের সুযোগ নেয় যে সমস্ত কিছু কেবল জাভাস্ক্রিপ্ট এবং সুতরাং যখন কোনও ভেরিয়েবলের কোনও মানের উপর ভিত্তি করে উপাদানগুলি কীভাবে রেন্ডার করতে হয় তা বেছে নেওয়ার ক্ষেত্রে আমরা বিস্তৃত নমনীয়তা অর্জন করতে পারি। যদিও আমি স্বীকার করি যে জেএসএক্স কোড পঠনযোগ্যতার জন্য এতটা দুর্দান্ত নয়, এটি অবশ্যই আমাদের রেন্ডার করা সামগ্রীর উপর সূক্ষ্ম নিয়ন্ত্রণ দেয়।

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

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

নায়কদের রেন্ডারিং তালিকা। এনজিফোর্ড নির্দেশিকা ব্যবহার করে কৌণিকের মধ্যে গতিশীল সামগ্রী

কোড পাঠযোগ্যতা: অ্যাঙ্গুয়ালার

কোড লিখনযোগ্যতা: প্রতিক্রিয়া (জেএসএক্স এবং এর নমনীয়তার কারণে)

যদি আপনার অ্যাপ্লিকেশনটিতে প্রচুর গতিশীল সামগ্রী থাকে যা ফ্লাইতে যুক্ত করা বা অপসারণ করা উচিত, তবে প্রতিক্রিয়া ব্যবহার করুন। মনে রাখবেন যে কোডটি খুব বড় হয়ে গেলে জেএসএক্স কোডটি বোঝা খুব কঠিন হয়ে যায়।

উপাদানগুলির জন্য শর্তাধীন স্টাইলিং

প্রায়শই আমরা একটি ব্যবহারের কেসটি দেখতে পাই যেখানে আমাদের শর্ত বা মানের উপর ভিত্তি করে উপাদানগুলিকে বিভিন্ন স্টাইল দেওয়া প্রয়োজন। আমাদের যেকোন সময় নির্দিষ্ট সময়ে ক্লাসিকভাবে যোগ বা ক্লাস অপসারণের প্রয়োজন হতে পারে। একে কন্ডিশনাল স্টাইলিং বলা হয় এবং প্রতিক্রিয়া এবং কৌণিক উভয়েরই এটির জন্য দুর্দান্ত সমর্থন রয়েছে।

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

বিক্রিয়াতে স্যুইচ কেসের মানের ভিত্তিতে ডিভ উপাদানকে শর্তসাপেক্ষ ক্লাস প্রদান G

কৌণিক বিভিন্ন ধরণের টেম্পলেট নির্দেশনা সরবরাহ করে যা কোনও উপাদান কী শ্রেণি বা স্টাইল গ্রহণ করতে পারে তা নির্ধারণ করতে ব্যবহার করা যেতে পারে। এটি ব্যবহারে মোটামুটি সুবিধাজনক, তবে তারপরে আবার এই নির্দেশাবলী কীভাবে কাজ করে তা আপনার জ্ঞান থাকা প্রয়োজন। তবে আমার উপর বিশ্বাস করুন, একবার আপনি কীভাবে এই সমস্ত কাজ করে তা ঝুলিয়ে রাখলে বিষয়গুলি খুব সহজ হয়ে যায়।

[Class.classname] নির্দেশিকা ব্যবহার করে একটি ডিভিতে শর্তসাপেক্ষ ক্লাস প্রদান যা কৌণিকভাবে তার বিপরীতে দেওয়া হয় এমন অভিব্যক্তি অনুসারে সমাধান হয়

কোড পঠনযোগ্যতা: একবার আপনি নির্দেশাবলী কী করেন তা জানার পরে অবশ্যই কৌনিকটি খুব সোজা এগিয়ে এবং সহজেই বোঝা যায়। অন্যদিকে জটিল জেএসএক্স বোঝা যে কারও পক্ষে চ্যালেঞ্জ।

কোড লিখনযোগ্যতা: প্রতিক্রিয়া। যেহেতু এটি আমাদের আরও অনেক নমনীয়তা এবং নিয়ন্ত্রণ দেয়।

অতএব, আপনার অ্যাপ্লিকেশনটিতে আপনার প্রচুর গতিশীল স্টাইলিং রয়েছে যা ফ্লাইতে পরিবর্তিত হয় এবং আপনার প্রতিটি ছোট ছোট জিনিস যা রেন্ডার করার দরকার হয় তা নিয়ন্ত্রণ করতে হবে, প্রতিক্রিয়া এটির জন্য দুর্দান্ত। তবে এরপরে এই জাতীয় জটিল কোড লেখা এবং পরিচালনা করা পুরোপুরি একটি চ্যালেঞ্জ। অন্যদিকে কৌণিক পড়ার জন্য খুব সহজ এবং পরিচালনা করা সহজ।

স্টাইল স্কপিং

স্টাইল স্কোপিং একটি বৃহত অ্যাপ্লিকেশন তৈরি করার সময় একটি খুব গুরুত্বপূর্ণ সমস্যা। আমরা চাই যে একটি উপাদানগুলির শৈলীর উপাদান উপাদান থাকা এবং বিশ্বব্যাপী না। (আসুন আমরা কেবল অনুমান করি যে উপাদানটি পৃষ্ঠার মাত্র একটি অংশ)। যখন আমাদের ভারসাম্য এবং উপাদানগুলির বোঝা থাকে, তখন বিভিন্ন উপাদানগুলির জন্য বিভিন্ন ক্লাসযুক্ত শৈলীগুলি লেখা খুব কঠিন হয়ে যায়। আমরা একটি অংশের জন্য সংজ্ঞায়িত শৈলীগুলির নিজস্ব উপাদানটির সুযোগ থাকতে চাই। এটিকে ভিউ এনক্যাপসুলেশন হিসাবেও ডাকা হয় যেখানে আমরা স্টাইলগুলি কেবল একটি দৃশ্যে সীমাবদ্ধ করি।

কৌনিকটি ভিউ এনক্যাপসুলেশন সহ বাক্স থেকে বেরিয়ে আসে। কোনও নির্দিষ্ট উপাদানগুলির জন্য সংজ্ঞায়িত কোনও স্টাইল সেই নির্দিষ্ট উপাদানটির মধ্যে সীমাবদ্ধ। যদিও দুটি উপাদানগুলির মধ্যে দ্বন্দ্বপূর্ণ শ্রেণীর নাম থাকতে পারে, কৌণিকটি এমনভাবে যত্ন নেয় যে কেবল সংশ্লিষ্ট উপাদানগুলির জন্য কেবল সংশ্লিষ্ট শৈলীগুলি ব্যবহৃত হয়। বিশ্বাস করুন, এটি একটি দুর্দান্ত বৈশিষ্ট্য, যা আমি নিশ্চিত যে আপনারা সবাই ব্যবহার করতে আসবেন। ভিউ এনক্যাপসুলেশন কনফিগারেশন অপসারণেরও বিধান রয়েছে।

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

অতএব, আপনার যদি এনক্যাপসুলেশন বা সাধারণ পরিভাষায় শৈলীর স্কোপিংয়ের প্রয়োজন হয় তবে কৌনিক হয়ে যান। সময়কাল।

আবেদনের পরিবর্তনের অবস্থা

অ্যাপ্লিকেশনের স্থিতি পরিবর্তন গতিশীল রেন্ডারিংয়ের অনুরূপ। তবে আমি পৃথকভাবে কীভাবে রাষ্ট্রের সাথে আলাদাভাবে আচরণ করে এবং এটি কতটা কার্যকর তা এই কারণেই এটি আলাদাভাবে লিখেছি।

কৌণিক ক্ষেত্রে, আপনি ভেরিয়েবলের বর্তমান মানের উপর ভিত্তি করে দ্বিপথের বাইন্ডিং এবং সামগ্রী রেন্ডার ব্যবহার করেন। এখন এই ভেরিয়েবলগুলি এটি কী এবং কে ভেরিয়েবলগুলি এবং কোথা থেকে সম্পাদনা করে তা নির্ধারণ করার জন্য এটি সম্পূর্ণরূপে বিকাশকারীদের up এটি মাঝেমধ্যে দুর্দান্ত বিভ্রান্তির দিকে নিয়ে যায় কারণ আমরা জানি না যে কোডের কোন অংশটি সত্যই রাষ্ট্রকে পরিবর্তন করছে কারণ রাজ্যটি সর্বত্রই অ্যাক্সেসযোগ্য something

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

আমি ভেবেছিলাম যেভাবে প্রতিক্রিয়াটি উপাদানটির অবস্থা পরিচালনা করে তা অত্যন্ত নিয়মতান্ত্রিক এবং মানক। যদিও লিখন কোড একটি চ্যালেঞ্জ হতে পারে, বৃহত্তর কোড বজায় রাখা যেখানে রাজ্য অনেক কিছু পরিবর্তন করে প্রতিক্রিয়া জানাতে খুব সহজ। অন্যদিকে কৌণিক এই ক্ষেত্রে খুব অনানুষ্ঠানিক। এটি যে কোনও কোডকে উপাদানটির অবস্থা পরিবর্তন করতে দেয়। যদিও কোড লেখা খুব সহজ তবে বড় কোড বেইজ বজায় রাখা শক্ত হয়ে যায়।

কোড লিখনযোগ্যতা: কৌণিক

কোড পাঠযোগ্যতা: কৌণিক

কোড পরিচালনাযোগ্যতা: প্রতিক্রিয়া (কখনও কখনও খুব দরকারী এবং সুবিধাজনক পাশাপাশি)

উপাদানগুলির জন্য লাইফ সাইকেল হুকস:

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

কম্পোনেন্ট টু কমপোনেন্ট কমিউনিকেশন

পৃষ্ঠাটি কয়েকটি ছোট ছোট ভাগে ভাগ করার কল্পনা করুন। প্রতিটি অংশকে উপাদান বলা হয় এবং প্রতিটি উপাদানটির নিজস্ব রাষ্ট্র এবং সবকিছু থাকে। উপাদানগুলি আবেদনের প্রাথমিক বিল্ডিং ব্লক। উদাহরণস্বরূপ, শিরোনাম একটি উপাদান হতে পারে। পোস্টগুলির তালিকা কোনও উপাদান হতে পারে। প্রতিটি উপাদানটির নিজস্ব ব্যবসায়িক যুক্তি এবং রাজ্য থাকবে যার ভিত্তিতে আমরা উপাদানটির উপাদানগুলি রেন্ডার করি। প্রতিটি উপাদান আরও কয়েকটি ছোট উপাদান বিভক্ত করা যেতে পারে। বাহ্যিক উপাদানটিকে মূল উপাদান হিসাবে এবং অভ্যন্তরীণ উপাদানগুলি সন্তানের উপাদান হিসাবে উল্লেখ করা যেতে পারে।

একটি ওয়েব অ্যাপ্লিকেশনটিতে, দুটি উপাদান একে অপরের সাথে যোগাযোগ করা খুব গুরুত্বপূর্ণ। আমাদের পিতামাত্ত্বিক উপাদান থেকে একটি শিশু উপাদান এবং এর বিপরীতে সংযোগ স্থাপন করতে হবে। আসুন দেখুন কীভাবে কৌনিক এবং প্রতিক্রিয়া আমাদের উভয়কে সহায়তা করে।

প্রতিক্রিয়াশীল এবং কৌণিক উভয় ক্ষেত্রে, পিতা বা মাতা উপাদান থেকে সন্তানের উপাদানগুলিতে ডেটা প্রেরণ করা খুব সহজ এবং খুব মিল। আমরা বাচ্চাকে প্রপস আকারে ডেটাটি দিয়ে দিই এবং শিশু তারপরে এই মানগুলি অ্যাক্সেস করতে পারে।

প্রতিক্রিয়া হিসাবে অভিভাবক উপাদান থেকে শিশু উপাদান থেকে ডেটা পাস করাকৌণিক ক্ষেত্রে সন্তানের উপাদানগুলিতে পিতামাতার উপাদান থেকে ডেটা পাঠানো

আপনি দেখতে পারেন উভয় খুব একই রকম। এবং তাদের উভয় ব্যবহার করা খুব সুবিধাজনক। উভয় পদ্ধতি ডেটা বন্ডিং পাশাপাশি ব্যবহার করছে। অর্থাত্, প্যারেন্ট উপাদানগুলিতে ডেটা পরিবর্তনের ফলে অভ্যন্তরীণ উপাদানটিও পরিবর্তিত হবে।

বিপরীত ঘটে যখন পার্থক্যটি আসে যখন শিশু উপাদান থেকে ডেটা প্যারেন্ট উপাদানগুলিতে প্রেরণ করা হয়।

কৌণিকভাবে, আমরা যা করি তা হ'ল আমরা যখনই কিছু ঘটে তখন শিশু উপাদানটিকে একটি কাস্টম ইভেন্ট হিসাবে পরিণত করি। অভিভাবক উপাদানটি সহজেই এই জাতীয় ইভেন্টের জন্য শুনবে এবং যখন এই ইভেন্টটি ঘটে তখন আমরা একটি ফাংশন সম্পাদন করি। এই উপাদানটিতে যুক্তিগুলি শিশু উপাদান থেকে আসবে। এইভাবে আমরা সন্তানের উপাদানগুলির মধ্যে কিছু ঘটার ফলস্বরূপ পিতামাতার অংশে কিছু ঘটায়। এইভাবে আমরা শিশু এবং পিতামাতার মধ্যে যোগাযোগ চলছে। যদিও সন্তানের উপাদান থেকে এ জাতীয় ইভেন্টগুলি নির্গমন করা একটি চ্যালেঞ্জজনক কাজ এবং এটির জন্য আপনাকে কৌণিকের কিছু বাক্য গঠন জানা দরকার, আমার মতে এটি মোটামুটি সহজ।

চাইল্ড উপাদান নির্গমন ইভেন্টগুলি যা কৌণিকের মধ্যে প্যারেন্ট উপাদান দ্বারা ধরা পড়ে

সন্তানের কাছ থেকে পিতামাতার কাছে ডেটা প্রেরণের ক্ষেত্রে প্রতিক্রিয়া একটি ভিন্ন পদ্ধতির অনুসরণ করে। আপনি মূলত যা করেন তা হ'ল, পিতা-মাতার ক্রিয়াকলাপের প্রসঙ্গগুলি প্রপস হিসাবে প্রেরণ করুন যা বাচ্চার মধ্যে যখন কিছু ঘটে তখন তা সম্পাদন করা দরকার it অনাক্লিক বা যেকোন কিছু হওয়ার পরে যখন শিশুটি ঘটে তখন নিশ্চিত হয়ে যায় যে এই ফাংশনটি কার্যকর হয়ে গেছে। আমরা অবশ্যই পিতামাতার কার্যক্রমে যুক্তি পাঠাতে পারি এবং এইভাবে আমরা সন্তানের কাছ থেকে পিতামাতার সাথে যোগাযোগ স্থাপন করেছি। জিনিসগুলি পরিচালনা করার ঝরঝরে উপায় কি আপনি ভাবেন না?

কম্পোনেন্টের প্রপস হিসাবে ফাংশনটির রেফারেন্সটি শিশু উপাদানকে নীচে পাঠানো

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

পঠনযোগ্যতা: আমার মতে উভয়ই প্রায় একই

লিখনযোগ্যতা: প্রতিক্রিয়া এটি আরও ভাল এবং একটি সহজ উপায়ে করে

HTTP সার্ভার / ব্যাকেন্ডে কল করুন

ডেটা পেতে সার্ভারে অ্যাসিঙ্ক্রোনাস কল করা এবং তদনুসারে রেন্ডার করা যে কোনও একক পৃষ্ঠার অ্যাপ্লিকেশনটির অন্যতম প্রধান কাজ। উভয় ফ্রেমওয়ার্ক কার্যকারিতা বাস্তবায়নের জন্য দুর্দান্ত সমর্থন দেয়। কৌণিকগুলি "এইচটিটিপি" মডিউল ব্যবহার করে তবে প্রতিক্রিয়াটি "অ্যাক্সেস" ব্যবহারের পরামর্শ দেয়। উভয়ই অনেক একই রকম এবং ব্যবহার করা খুব সহজ। তাদের উভয়ের সাথে এগিয়ে যান। যদিও এটি লক্ষ করা খুব গুরুত্বপূর্ণ যে এগুলি অবিচ্ছিন্ন কাজ এবং এটি "প্রতিশ্রুতিগুলি" ফিরিয়ে আনবে যা জাভাস্ক্রিপ্টের মূল ধারণা এবং প্রতি বিকাশকারীদের কীভাবে প্রতিশ্রুতিগুলি মোকাবেলা করতে হবে সে সম্পর্কে জ্ঞানের হাতে থাকা উচিত etc.

উভয়ই জটিলতার সমান স্তরে এবং যদি আপনি আমাকে একটি চয়ন করতে বলেন তবে আমি সম্ভবত এই ক্ষেত্রে প্রতিক্রিয়া জানাতে এগিয়ে যাওয়ার পরামর্শ দিই, কেবলমাত্র সার্ভার থেকে যে তথ্যটি রেকর্ড করা যায় তা উপস্থাপন করা কতটা সহজ।

রাউটিং

রাউটিং প্রতিটি একক পৃষ্ঠার অ্যাপ্লিকেশনটির আর একটি মূল ধারণা। রাউটিং হ'ল একক পৃষ্ঠার অ্যাপ্লিকেশনটিকে বহু পৃষ্ঠার অ্যাপ্লিকেশনটির মতো মনে হয়। রাউটিংয়ের জন্য উভয় ফ্রেমওয়ার্কেরই ভাল সমর্থন রয়েছে। তাদের প্রতিটি পর্যালোচনা করতে দিন

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

কোডে রাখা প্রতিক্রিয়াযুক্ত রুটগুলি। কোন রুটটি সক্রিয় থাকে এবং কোন সময়ে উপাদানটি কী প্রপসগুলি গ্রহণ করবে সেগুলিও নির্দিষ্ট করে যা কোন উপাদানটি রেন্ডার করতে হবে তা নির্দিষ্ট করে।

অন্যদিকে কৌণিকের রুটে আরও নিয়মিত পদ্ধতি রয়েছে এবং আমি মনে করি কোড এবং বুঝতে আরও সহজ। কৌণিকভাবে, আমরা অন্য কোনও স্থানে সমস্ত রুট আলাদাভাবে পরিচালনা করি। এমনকি কোনও নির্দিষ্ট রুট সক্রিয় থাকাকালীন কী কী উপাদানগুলি রেন্ডার করতে হবে তা এখানে আমরা উল্লেখ করেছি। তবে কেবল এই কারণে যে এই কোডটি উপাদান উপাদানটি থেকে পৃথক, এটিকে পরিচালনা করা আরও সহজ করে তোলে। আমাদের রুটগুলির ওপরে প্রচুর অন্যান্য কনফিগারেশন থাকতে পারে এবং সেগুলি সমস্ত একক স্থানে রয়েছে। আপনি কি মনে করেন না এই পদ্ধতিটি আরও ভাল?

কৌণিক প্রয়োগের সমস্ত রুট একসাথে এক জায়গায়। এবং কোন রুটটি সক্রিয় থাকে কখন কোন উপাদানটিকে রেন্ডার করা প্রয়োজন তাও নির্দিষ্ট করে।

দুটি ফ্রেমওয়ার্ক সক্রিয় রুটের উপর ভিত্তি করে নেস্টেড রাউটিং এবং কন্টেন্টের গতিশীল রেন্ডারিং সমর্থন করে।

তাহলে চূড়ান্ত রায়? যদি খুব কয়েকটি রুটের সাথে অ্যাপ্লিকেশনটি ছোট হয় তবে প্রতিক্রিয়া জানাতে যান। তবে যদি অ্যাপ্লিকেশনটি প্রচুর রুট এবং নেস্টেড রুটগুলি সহ আরও অনেক কিছু দিয়ে বড় হয় তবে কৌনিক সহ যান।

পঠনযোগ্যতা: কৌণিক

লিখনযোগ্যতা: প্রতিক্রিয়া

পরিচালনযোগ্যতা: কৌণিক

রুট গার্ডস

যে কোনও একক পৃষ্ঠার অ্যাপ্লিকেশনের জন্য রুট গার্ডগুলি অত্যন্ত গুরুত্বপূর্ণ। আপনি চান না যে ব্যবহারকারীর অযাচিত রুট অ্যাক্সেস করতে হবে এবং রুট গার্ডরা এমন জিনিস যা ব্যবহারকারীকে এটি করতে বাধা দেয়। সুতরাং আপনার আবেদনে রুট গার্ড থাকা আরও অনেক গুরুত্বপূর্ণ। রুট গার্ডের একটি উদাহরণ হ'ল যা ব্যবহারকারীকে প্রোফাইল পৃষ্ঠায় যাওয়ার অনুমতি দেওয়ার আগে ব্যবহারকারী লগ ইন হয়েছে কিনা তা যাচাই করে।

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

প্রতিক্রিয়া মধ্যে রুট গার্ড যোগ করা

কৌণিকের রুট গার্ডদের কাছে অনেক বেশি নিয়মিত পদ্ধতি রয়েছে। এটি রুট গার্ডদের সমর্থনে নির্মিত সঙ্গে আসে। আমরা একবারে কোড লিখতে গিয়ে অনেকগুলি রুটের জন্য একই রুট গার্ডটিও ব্যবহার করতে পারি। পাশাপাশি বাস্তবায়ন করা সহজ ধারণা আপনি মূলত যা করেন তা হ'ল অন্য শ্রেণি তৈরি করা যার একটি ফাংশন রয়েছে যা সত্য বা মিথ্যা প্রত্যাবর্তন করে। যদি এই ফাংশনটি সত্যে আসে, তবে সেই রুটটি ব্যবহারকারীর দ্বারা অ্যাক্সেস করা যেতে পারে।

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

পঠনযোগ্যতা: কৌণিক এটি ভাল কাঠামোগত এবং পদ্ধতিগত হিসাবে

রচনাবলি: কৌণিকের ঠিক সামনেই প্রতিক্রিয়া জানায় যেহেতু কৌণিকের জন্য আমাদের নতুন ধারণাটি শিখতে হবে। অন্যদিকে প্রতিক্রিয়া হ'ল খাঁটি জাভাস্ক্রিপ্ট ম্যানিপুলেশন

পরিচালনাযোগ্যতা: বৃহত্তর অ্যাপ্লিকেশনগুলির জন্য কৌণিক

ফর্ম, ফর্ম বৈধকরণ এবং এর ক্রিয়াকলাপ

প্রতিটি অ্যাপ্লিকেশনগুলির ব্যবহারকারীর ইনপুট হ্যান্ডেল করা প্রয়োজন এবং ব্যবহারকারীর ইনপুটটি বৈধ হওয়া উচিত। ফর্মগুলি এবং এর বৈধতা এবং এর ক্রিয়াকলাপগুলি প্রায় প্রতিটি একক পৃষ্ঠার অ্যাপ্লিকেশনটিতে দেখা যায়।

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

অন্যদিকে কৌণিক আসে ফর্মগুলির সমর্থনে নির্মিত। এটি আমাদের জন্য দৃশ্যের পিছনে অনেক কিছু করে। এটি ফর্ম উপাদানগুলির উপর ভিত্তি করে বৈধতা দেয়। অতিরিক্ত বৈধতা স্বয়ং ব্যবহারকারী দ্বারা রচনা করা দরকার। ফর্ম বৈধতা ব্যবহার করার সময় একটি প্রধান প্লাস পয়েন্ট শর্তসাপেক্ষ স্টাইলিং যা এটি ডিফল্টরূপে সরবরাহ করে provides সুতরাং এটি ব্যবহার করা খুব সুবিধাজনক হয়ে ওঠে। আপনার অ্যাপ্লিকেশনটির জুড়ে ব্যবহারকারীর ইনপুটটির সাথে যদি অনেক কিছু করার থাকে তবে আপনি কৌণিক নিয়ে এগিয়ে যেতে পারেন।

কৌণিক ফর্ম ক্রিয়াকলাপের জন্য ফর্ম মডিউল ব্যবহার করে

এটি লক্ষ করা খুব গুরুত্বপূর্ণ যে ফর্মগুলি ব্যবহার করার জন্য এটি কীভাবে কাজ করে সে সম্পর্কে আমাদের একটি পরিষ্কার ধারণা থাকা দরকার। আপনি যদি তা করেন তবে বাস্তবায়ন করা খুব সহজ। কিন্তু যখন এটি প্রতিক্রিয়া আসে, এটি সমস্ত চালাক জাভাস্ক্রিপ্ট ম্যানিপুলেশন বাদে। সঙ্গে কাজ করা খুব সহজ। তাহলে চূড়ান্ত রায়?

পঠনযোগ্যতা: কৌণিক কারণ প্রতিক্রিয়ার জন্য আমাদের প্রচুর কোড লিখতে হবে

লেখার যোগ্যতা: প্রতিক্রিয়া কারণ এটি শেষটি জাভাস্ক্রিপ্ট ছাড়া কিছুই নয়

পরিচালনযোগ্যতা: কৌনিক এটি ফর্মের সাথে কাজ করার জন্য তৈরি করেছে।

সেন্ট্রাল ডেটা স্টোরেজ

আপনি যদি জিজ্ঞাসা করতে পারেন যে কেন আপনার কাছে ইতিমধ্যে কোনও পিতামাত্ত্বিক উপাদান থেকে কোনও সন্তানের উপাদানগুলিতে ডেটা দেওয়ার সুযোগ রয়েছে এবং যখন এর বিপরীতে থাকে তখন কেন কেন্দ্রীয় স্টোরেজের প্রয়োজন হয়। কম্পোনেন্ট ট্রিতে আপনার কয়েকশ উপাদান রয়েছে এমন একটি উদাহরণ নিতে দাও। এবং আমরা একটি ব্যবহারের ক্ষেত্রে পৌঁছেছি যেখানে উপাদান গাছের মধ্যে একে অপরের সাথে খুব দূরে অবস্থিত দুটি উপাদানগুলির একে অপরের সাথে যোগাযোগের প্রয়োজন। এই ক্ষেত্রে, উত্সগুলি সহ উপাদান উপাদান জুড়ে ডেটাগুলি গন্তব্যস্থলে প্রপসগুলি সহ প্রেরণ করা খুব কঠিন এবং এটি আমাদের পক্ষে একটি কেন্দ্রীয় ডাটা স্টোরেজ প্রয়োজন যা থেকে কোনও উপাদান সংরক্ষণ করতে এবং পুনরুদ্ধার করতে এবং আপডেট করতে পারে। কেন্দ্রীয় ডেটা স্টোরেজটির একটি সাধারণ উদাহরণ হ'ল লগ ইন হওয়া সম্পর্কিত প্রমাণীকরণের বিবরণগুলি সংরক্ষণ করা P সম্ভবত প্রতিটি উপাদানকে সেই অনুসারে সামগ্রী রেন্ডার করতে এই লগ ইন করা মানটিতে অ্যাক্সেস থাকা দরকার। কৌণিক পরিষেবাগুলির নামক একটি কেন্দ্রীয় স্টোরেজ সুবিধার সাথে আসে এবং রিডাক্স নামে একটি তৃতীয় পক্ষের লাইব্রেরি ব্যবহৃত হয়। আসুন দেখুন এই দু'জন কীভাবে কাজ করে।

কৌণিক পরিষেবাগুলি নামে একটি বিশেষ নির্মাণ ব্যবহার করে যা বিশ্বব্যাপী ডেটা ধারণ করে যা প্রতিটি নিবন্ধিত উপাদানটিতে অ্যাক্সেস রয়েছে। পরিষেবাতে এই ডেটা অ্যাক্সেস করতে, আমাদের এই পরিষেবাটি উপাদানটিতে ইনজেক্ট করতে হবে এবং এটি ব্যবহার করতে হবে। আমি এই পদ্ধতিটি ব্যবহার করার পক্ষে মোটামুটি সহজ এবং খুব কার্যকর যখন আমার প্রয়োজন সমস্ত উপাদান জুড়ে ডেটা প্রয়োজন। কেন্দ্রীয় ডেটাতে কাজ করে এমন সহায়ক ফাংশনও থাকতে পারে। আমাদের একাধিক কেন্দ্রীয় স্টোরেজ এবং একাধিক পরিষেবা থাকতে পারে। সাধারণত আমাদের কাছে পরিষেবা রয়েছে যা প্রমাণীকরণ সম্পর্কিত ডেটা পরিচালনা করে, এমন একটি পরিষেবা যা সমস্ত এসিঙ্ক কাজ করে যেমন সার্ভারের কাছ থেকে তথ্য পাওয়া ইত্যাদি etc. এ জাতীয় পদ্ধতির অসুবিধা কী? যখন অ্যাপ্লিকেশনটির আকার বৃদ্ধি পায়, কেন্দ্রীয় স্টোর কে এবং কখন আপডেট করছে তা পরিচালনা করা খুব কঠিন হয়ে পড়ে। ডিবাগ করা এবং কোন উপাদানটি ডেটা বদল করেছে তা খুঁজে বের করা কঠিন হয়ে পড়ে। একই সময়ে অনেক উপাদান থেকে কেন্দ্রীয় স্টোরেজ একযোগে আপডেট অন্য সমস্যা। অন্য কথায়, কেন্দ্রীয় স্টোরেজ আপডেট করার কোনও পদ্ধতিগত উপায় নেই। এই বলে, আমি পরিষেবাগুলি ব্যবহার করা খুব সহজ এবং সুবিধাজনক এবং অনেক অ্যাপ্লিকেশন ব্যবহার করেছি। আপনার যদি কোনও কেন্দ্রীয় ডেটা স্টোরেজ প্রয়োজন এবং সমস্ত উপাদান জুড়ে ডেটা সমন্বিত হতে চান তবে অবশ্যই কৌণিকের জন্য যান এবং পরিষেবাগুলি ব্যবহার করুন।

কৌণিক পরিষেবা

কেন্দ্রীয় স্টোরেজের জন্য অন্তর্নির্মিত প্যাকেজটি নিয়ে ডিফল্টরূপে প্রতিক্রিয়া আসে না। সুতরাং প্রতিক্রিয়া হ'ল রিডেক্স ব্যবহার করে, একটি তৃতীয় পক্ষের প্যাকেজ যা কেন্দ্রীয় স্টোরেজের মতো কাজ করে এবং স্টোরেজটিতে বিভিন্ন ক্রিয়াকলাপ আপডেট করার ও করার পদ্ধতি সরবরাহ করে। রেডাক্স স্পষ্টতই অ্যাপ্লিকেশনটির বিশ্বব্যাপী অবস্থা আপডেট করার আরও অনেক পদ্ধতিগত উপায় সরবরাহ করে। সংজ্ঞা যেমন চলেছে, প্রতিটি উপাদানগুলির রিডুক্স স্টোরটিতে অ্যাক্সেস রয়েছে। তারপরে প্রতিটি উপাদান তার "প্রেরণ কমান্ড" উত্থাপন করে যা বিশ্বব্যাপী রাষ্ট্র আপডেট বা পরিবর্তন করার জন্য আদেশ হিসাবে বোঝা যায়। এই প্রেরণ কমান্ডগুলি "রিডুসার" ফাংশন দ্বারা ধরা হয়েছে যা কেবলমাত্র ফাংশন যা স্টোরেজ অ্যাক্সেস করার অনুমতি পেয়েছে। প্রেরণ কমান্ডের উপর ভিত্তি করে, রিডুসারটি প্রয়োজনীয় অপারেশন করে। এই সম্পূর্ণ প্রক্রিয়াটি গ্লোবাল স্টেটকে আপডেট করার দিকে খুব নিয়মিত পদ্ধতি দেয় approach এই রিডাক্স প্যাকেজটি সমবর্তী লেনদেনগুলি সম্পর্কেও যত্ন নেয় এবং সেগুলি কার্যকরভাবে কার্যকর করে। যদিও রিডেক্সের সুবিধাগুলি অনেকগুলি এটি সেটআপ করা সত্যিই সহজ নয় এবং একটি ছোট অ্যাপ্লিকেশনের জন্য অবশ্যই সুপারিশ করা হয় না।

একটি রিডুসার ফাংশনের উদাহরণ যা পূর্ববর্তী অবস্থায় গ্রহণ করে এবং অনুরোধিত ক্রিয়াটির ভিত্তিতে, কাজটি সম্পাদন করে এবং আপডেট অবস্থায় ফিরে আসে।

যেমন আগেই উল্লেখ করা হয়েছে, খুব কম উপাদান সহ একটি ছোট অ্যাপ্লিকেশন জন্য রিডুক্স থাকা প্রয়োজন হয় না, পরিবর্তে কৌণিকের পরিষেবাগুলি ব্যবহার করে এবং কৌণিকভাবে এই অ্যাপ্লিকেশনটি তৈরি করা আরও ভাল। বৃহত্তর অ্যাপ্লিকেশনটির জন্য আমরা রিডেক্সের সর্বোত্তম ব্যবহার করতে পারি তবে তারপরে আবারও, রিডাক্স প্রতিক্রিয়াটির সাথে সম্পর্কিত নয়। এটি একটি তৃতীয় পক্ষের গ্রন্থাগার যা অন্য কোনও কাঠামোর সাথে ব্যবহার করা যেতে পারে। কৌণিকগুলিতে রিডেক্স ব্যবহার করা থেকে বিরত রাখার উপায় কী? ;)

পঠনযোগ্যতা: কৌণিক (তার সরলতার জন্য)

লেখার যোগ্যতা: কৌণিক (কোনও পূর্ববর্তী কনফিগারেশন এবং খুব ছোট শিক্ষার বক্ররের প্রয়োজন নেই)

পরিচালনযোগ্যতা: আপনার পছন্দ, পরিষেবা বা রিডেক্স উভয়ই ব্যবহার করুন।

এখন কি পরবর্তী পদক্ষেপ?

আপনার অ্যাপ্লিকেশন তৈরির প্রথম পদক্ষেপটি হ'ল সমস্যা বিবরণীটি সঠিকভাবে বুঝতে এবং কর্মপ্রবাহের নকশা করা এবং এর জন্য পরিকল্পনা করা। আপনার অ্যাপ্লিকেশনটিতে থাকা সমস্ত মূল বৈশিষ্ট্যগুলি তালিকাভুক্ত করুন। আপনার অ্যাপ্লিকেশন এবং অন্যান্য পরামিতিগুলির স্কেল। তারপরে আমরা যে সমস্ত বিষয় নিয়ে আলোচনা করেছি সেগুলির মধ্য দিয়ে যান এবং আপনার আবেদনের জন্য কোন ফ্রেমওয়ার্কটি সর্বোত্তম। আমি প্রতিটি শিক্ষানবিশকে একটি জিনিস বলব তা হ'ল ট্রেন্ডের সাথে চলতে হবে না। কোনও কাঠামো সরবরাহ করে এমন সমস্ত বৈশিষ্ট্যগুলির তুলনা করুন এবং বিশ্লেষণ করুন এবং আপনার স্ট্রিংহ্ট অনুসারে কাজ করার জন্য অনুকূল কাঠামোটি চয়ন করেন।

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

এটি উভয়ই দুর্দান্ত বিকাশকারীদের দ্বারা নির্মিত সত্যই আশ্চর্যজনক ফ্রেমওয়ার্কগুলি লক্ষ করা খুব গুরুত্বপূর্ণ। যে কোনও ফ্রেমওয়ার্ক ব্যবহার করা আপনার অ্যাপ্লিকেশনটিকে সত্যিই আশ্চর্যজনক করে তুলবে। আমি যেমন করেছিলাম তেমনি এই দু'টিকেই অন্বেষণ করতে এবং উভয়ের মধ্যে আরও অন্তর্দৃষ্টি পেতে পারি। এমন কোনও নিয়ম নেই যা বলে যে আমাদের কেবল একটি কাঠামো শেখা উচিত। শেখা সর্বদা একটি অবিচ্ছিন্ন প্রক্রিয়া এবং শিল্প সর্বদা পরিবর্তিত হয়। এই মুহুর্তে যে কাঠামোটি ট্রেন্ডিং চলছে তা আগামীকাল নাও হতে পারে। সুতরাং যা গুরুত্বপূর্ণ তা হ'ল আমরা মূল ধারণাগুলি এবং অন্যান্য গুরুত্বপূর্ণ বিষয়গুলি কতটা ভালভাবে বুঝতে পেরেছি।

আরও একটি বিষয় যা আমি চাপ দিতে চাই তা হ'ল, এখানে আরও অনেকগুলি মূল বৈশিষ্ট্য রয়েছে যা উভয় ফ্রেমওয়ার্কই সরবরাহ করে যা আমি coveredেকে রাখিনি। আমি একক পৃষ্ঠার অ্যাপ্লিকেশন বিকাশ করার সময় কেবলমাত্র সবচেয়ে সাধারণ ব্যবহারের ক্ষেত্রেই একটি মুখোমুখি হয়েছি এবং সে সম্পর্কে লিখেছি। এই তালিকায় মন্তব্য করতে এবং আরও তুলনা করতে দ্বিধা বোধ করবেন না যাতে আমার সহ অন্যান্যরা এতে আরও অন্তর্দৃষ্টি পেতে পারেন। এছাড়াও, যদি আমি কোনও ভুলত্রুটি করেছি তবে আমাকে ক্ষমা করবেন।

শেষ অবধি, আমি বরং এটি দীর্ঘ দীর্ঘ ব্লগটি পড়ার জন্য পাঠককে ধন্যবাদ জানাতে চাই। আশা করি এটি আপনার আবেদনের জন্য সঠিক কাঠামোটি চয়ন করতে আপনাকে সত্যই সহায়তা করেছে।

ধন্যবাদ.