React.js উপাদান এবং উপাদানগুলির গাছ তৈরির জন্য একটি এক্সএইচটিএমএলের মতো সিনট্যাক্স হিসাবে জেএসএক্স সরবরাহ করে। জেএসএক্স জাভাস্ক্রিপ্টে সংকলন করে এবং সঠিকভাবে জেএসএক্সে লুপ বা শর্তসাপেক্ষ সরবরাহ করার পরিবর্তে আপনি সরাসরি জাভাস্ক্রিপ্ট ব্যবহার করেন:
<ul>
{list.map((item) =>
<li>{item}</li>
)}
</ul>
আমি এখনও যা ব্যাখ্যা করতে সক্ষম হইনি তা হ'ল, জেএসপিতে অনুমান কনস্ট্রাক্টগুলি খারাপ হিসাবে বিবেচনা করা হয় কেন এটি ভাল বলে বিবেচিত হয়?
জেএসপিতে এরকম কিছু
<ul>
<% for (item in list) { %>
<li>${item}</li>
<% } %>
</ul>
এর মতো ট্যাগগুলির সাথে সমাধানযোগ্য একটি পাঠযোগ্যতা সমস্যা হিসাবে বিবেচিত <c:forEach>
। জেএসটিএল ট্যাগগুলির পিছনে যুক্তিগুলিও মনে হয় যে তারা জেএসএক্সের জন্য প্রয়োগ করতে পারে:
- আপনি যখন এক্সএইচটিএমএল-এর মতো সিনট্যাক্সের (অ্যাঙ্গেল ব্র্যাকেটস, বাসা বাঁধার) এবং জাভা / জাভাস্ক্রিপ্টের (কার্ল, কমা, প্যারেনস) মধ্যে টগল করছেন না তখন এটি পড়া সহজ read
- যখন আপনার কাছে রেন্ডারিং ফাংশনের অভ্যন্তরে পুরো ভাষা এবং প্ল্যাটফর্ম ব্যবহারের জন্য উপলব্ধ থাকে, তখন সেখানে যুক্তি যুক্ত করতে আপনাকে নিরুৎসাহিত করার পক্ষে কম কিছু থাকে না।
আমি কেন জেএসএক্সের চেয়ে আলাদা সেগুলি চিন্তা করতে পারি:
জাভাতে, আপনার কাছে ভুল কাজটি করার উত্সাহ ছিল - জেএসপি হট-লোড হবে, সুতরাং পুনর্নির্মাণ / পুনঃসূচনা চক্র এড়াতে জেএসপিগুলিতে কোড রাখার লোভ ছিল। তাত্ক্ষণিক উত্পাদনশীলতার জন্য রক্ষণাবেক্ষণের ত্যাগ ছিল। স্ক্রিপ্টলেট বাতিল করা এবং টেমপ্লেট নির্মানের একটি নির্দিষ্ট সেট সীমাবদ্ধ করা কার্যকরভাবে রক্ষণাবেক্ষণের কার্যকর করার একটি উপায় ছিল। জেএস বিশ্বে এরকম কোনও বিকৃতি বিদ্যমান নেই।
জেএসপি এবং জাভা সিনট্যাক্স জাভা কোডটিকে
<% ... %>
এলিমেন্ট জেনারেশনের থেকে আলাদা করার জন্য এবং জাভার নেটিভ সিনট্যাক্সের সাথেforeach
ধারণা বা প্রথম-শ্রেণীর ক্রিয়াকলাপের অভাব রয়েছে (সম্প্রতি অবধি)) জেএসএক্সে লুপস এবং কন্ডিশনালের জন্য নেটিভ জাভাস্ক্রিপ্ট ব্যবহারের সিনট্যাক্স পেনাল্টিটি শূন্য নয় (আমার মতে) তবে জেএসপির মতো খারাপ নয়, এবং লুপ এবং শর্তসাপেক্ষে জেএসএক্স-নির্দিষ্ট উপাদানগুলির পরিচয় দেওয়ার পক্ষে যথেষ্ট ততটা খারাপ নয়।
আমি আর কিছু মিস করছি?