تفاوت class و className در React 16
در React 16، امکانی اضافه شده است که اتریبیوتهای تگ ها به DOM پاس داده می شوند. این مسئله منجر به این پرسش شده که آیا میتوان از "class" به جای "className" استفاده کرد یا خیر و آیا مزایای استفاده از "className" نسبت به "class" وجود دارد یا خیر.
نخستین نکته این است که "class" یک کلیدواژه در جاوا اسکریپت است و JSX، که یک اکستنشن از جاوا اسکریپت محسوب میشود، به تبع آن از "className" استفاده میکند تا ابهام در سینتکس جاوا اسکریپت بوجود نیاید. به عنوان مثال، "class" در تعریف کلاسها مورد استفاده قرار میگیرد و نمیتوان بهعنوان یک نام شناسایی (identifier) دیگر از آن استفاده کرد. در نتیجه، برای جلوگیری از مشکلات مربوط به تعارضات سینتکسی و ابهاماتی که ممکن است در آینده به وجود آید، استفاده از "className" توصیه میشود.
علاوه بر این، با وجود اینکه در حال حاضر میتوان از "class" نیز استفاده کرد و در بسیاری از موارد به درستی کار میکند، توصیه میشود به دلیل سازگاری با پروژههای قبلی و همچنین رفع هرگونه مشکلاتی که ممکن است در آینده به خاطر تغییرات سینتکسی پدید آید، از "className" استفاده شود.
در پایان، با وجود اینکه "class" و "className" هر دو در حال حاضر قابل استفاده هستند و میتوانند عملکرد مورد انتظار را داشته باشند، بهترین کار این است که همچنان از "className" به عنوان یک بهترین شیوه استفاده کنید تا از مشکلات احتمالی و ابهامات در آینده جلوگیری شود.