
مقدمه
وقتی اولین بار با React آشنا شدم، فکر میکردم فقط یه لایبرری برای ساختن UI مثل jQuery یا Angularست. اما هر چی بیشتر باهاش کار کردم، بیشتر متوجه شدم که React فقط یه ابزار نیست؛ React یه زبان جدیده. یه شیوه ی فکر کردنه. ما فقط کد نمینویسیم بلکه ما داریم یاد میگیریم چطور «با React فکر کنیم».
امروز قصد دارم این ایده رو آشکار کنم : چرا React دارد تبدیل میشود به یه زبان مستقل نسبت به بقیه؟؟
و چرا این زبان، ذهن ما رو توی طراحی نرمافزار تغییر داده؟
React چطور مثل یک زبان مستقل عمل میکنه؟
در واقع JSX نه فقط سینتکس (syntax) زیبا نیست. در واقع مهمتر از یک سینتکس (syntax) هست در ظاهر شبیه HTML ، ولی در واقع ترکیب data + UI ست.همونطور که میدانید UI جدا از منطق نیست یعنی
" UI تو، مستقیم از دادههات ساخته میشود. "
UI is a function of state
مثال:
const Hello = ({ name }) => <h1>Hello, {name}</h1>;
در گذشته روند استفاده به طوری بود که :
UI = فایل HTML + فایل JS + فایل CSS
1 - فایل HTML برای ظاهر
2 - فایل JS برای منطق
3- فایل CSS برای استایل
الان تنها فقط یه تابع ساده که از روی دادهها، ظاهر میسازد . یعنی به جای اینکه بگی «چیکار کن»، فقط میگی چجوری باشه Declarative)) فکر کردن به جای گفتن «چیکار بکن»، میگی «چی باید باشه»
تو دنیای React، Hook ها مثل ابزارهای یه زبان جدید هستند. با useState حافظه تعریف میکنید، با useEffect اثرات جانبی رو مدیریت میکنید و با useMemo از تکرار جلوگیری میکند.
useEffect(() => { console.log( "کاربر تغییر کرد" ) ; }, [user]);
3. طراحی از دل State بیرون میاد
قبلاً طراحی از سمت UI بود یعنی ( اول Ul میساختیم، بعد date را inject میکردیم )ولی حالا:
اول state رو طراحی میکنیم، بعد UI رو طراحی میکنی، بعد ظاهر خودش درست میشه. این باعث میشه اول به «جریان داده» فکر کنی، نه ظاهر با React یاد میگیریم که قبل از UI، به جریان داده فکر کنیم — این تغییر ذهنی، خیلی مهمه.
4. مدل ذهنی جدید Thinking in React
در React توانایی این داریم کامپوننت بسازیم ، State پاس بدیم و فقط باید بشینیم تماشا کنیم بقیهشو بسپار به خود React و imperative نمینویسیم و با data flow کار میکنیم. انگار داری با یه زبان فکر میکنی که "Reactive"، نه "Imperative" به طور خلاصه تو React فقط میگیم چی باید باشد (UI = function(state))، نه اینکه باید چطوری درستش کنیم . این باعث میشه تمرکزت بیشتر بر منطق برنامه باشه تا دستکاری کردن دستی DOM .
5. نتیجهگیری
شاید React از نظر فنی یه Library باشه، ولی برای خیلی از ما تبدیل شده به یه زبان فکری کامل ما با JSX فکر میکنیم و با hooks برنامهریزی میکنیم و با state طراحی میکنیم. اگه تو هم حس میکنی React فقط یه ابزار نیست، نظرتو برام بنویس. به نظرت این مدل ذهنی قراره آیندهی توسعه وب رو تغییر بده؟
و خیلی دوست دارم نظر تو رو بدونم
به نظرت React واقعاً یه زبان جدیده؟
یا فقط یه ابزار خوبه که ما زیادی جدی گرفتیمش؟
منتظر دیدگاههاتم.
تو هم مثل من فکر میکنی یا نه؟
React, JSX, Hooks, State Management,React, useEffect, useState,React,declarative,کامپونن, زبان برنامهنویسی,طراحی رابط کاربری, توسعه وب