இந்தக் கட்டுரையை எழுதும் போது JavaScript கட்டமைப்புகள் எதுவும் உருவாக்கப்படவில்லை.
பின்வருபவை வட்டம் CI இன் "இது எதிர்காலம்" என்ற கட்டுரையால் ஈர்க்கப்பட்டது. மூலத்தை இங்கே படிக்கலாம் . இந்த பகுதி ஒரு கருத்து மட்டுமே, மற்றும் எந்த ஜாவாஸ்கிரிப்ட் கட்டமைப்பையும் போல, இது மிகவும் தீவிரமாக எடுத்துக்கொள்ளப்படக்கூடாது.
ஏய், எனக்கு இந்தப் புதிய வலைத் திட்டம் கிடைத்தது, ஆனால் உண்மையைச் சொல்வதென்றால், சில வருடங்களாக நான் அதிக இணையத்தை குறியீடாக்கவில்லை, மேலும் நிலப்பரப்பு கொஞ்சம் மாறிவிட்டது என்று கேள்விப்பட்டேன். நீங்கள் இங்குள்ள மிகவும் புதுப்பித்த இணைய டெவலப்பா?
-உண்மையான சொல் ஃப்ரண்ட் எண்ட் இன்ஜினியர், ஆனால் ஆம், நான் சரியான பையன். நான் 2016-ல் இணையம் செய்கிறேன். காட்சிப்படுத்தல்கள், மியூசிக் பிளேயர்கள், கால்பந்து விளையாடும் பறக்கும் ட்ரோன்கள், நீங்கள் பெயரிடுங்கள். நான் இப்போதுதான் JsConf மற்றும் ReactConf இலிருந்து வந்துள்ளேன், எனவே இணைய பயன்பாடுகளை உருவாக்குவதற்கான சமீபத்திய தொழில்நுட்பங்கள் எனக்குத் தெரியும்.
குளிர். பயனர்களின் சமீபத்திய செயல்பாட்டைக் காண்பிக்கும் பக்கத்தை நான் உருவாக்க வேண்டும், எனவே நான் REST எண்ட்பாயிண்டிலிருந்து தரவைப் பெற்று அதை ஒருவித வடிகட்டக்கூடிய அட்டவணையில் காண்பிக்க வேண்டும், மேலும் சேவையகத்தில் ஏதேனும் மாறினால் அதைப் புதுப்பிக்க வேண்டும். தரவைப் பெற்றுக் காட்ட jQuery ஐப் பயன்படுத்தலாமா என்று நினைத்துக் கொண்டிருந்தேன்.
-கடவுளே இல்லை, இனி யாரும் jQuery ஐப் பயன்படுத்துவதில்லை. நீங்கள் 2016 ஆம் ஆண்டு ரியாக்ட் கற்றுக்கொள்ள முயற்சிக்க வேண்டும்.
ஓ, சரி. எதிர்வினை என்ன?
-இது Facebook இல் சில தோழர்களால் உருவாக்கப்பட்ட ஒரு சூப்பர் கூல் லைப்ரரி, இது உண்மையில் உங்கள் பயன்பாட்டிற்கு கட்டுப்பாட்டையும் செயல்திறனையும் கொண்டு வருகிறது, எந்த காட்சி மாற்றங்களையும் மிக எளிதாக கையாள உங்களை அனுமதிக்கிறது.
அது சுத்தமாக ஒலிக்கிறது. சேவையகத்திலிருந்து தரவைக் காட்ட நான் ரியாக்டைப் பயன்படுத்தலாமா?
-ஆம், ஆனால் முதலில் உங்கள் வலைப்பக்கத்தில் ரியாக்ட் மற்றும் ரியாக்ட் DOMஐ நூலகமாகச் சேர்க்க வேண்டும்.
காத்திருங்கள், ஏன் இரண்டு நூலகங்கள்?
-எனவே ஒன்று உண்மையான நூலகம் மற்றும் இரண்டாவது DOM ஐ கையாளும், அதை இப்போது நீங்கள் JSX இல் விவரிக்கலாம்.
JSX? JSX என்றால் என்ன?
-JSX என்பது ஜாவாஸ்கிரிப்ட் தொடரியல் நீட்டிப்பு ஆகும், இது XML போன்றே தோற்றமளிக்கிறது. DOM ஐ விவரிக்க இது மற்றொரு வழி, அதை ஒரு சிறந்த HTML என்று கருதுங்கள்.
HTML இல் என்ன தவறு?
-இது 2016. இனி யாரும் HTML ஐ நேரடியாகக் குறியீடு செய்ய மாட்டார்கள்.
சரி. எப்படியிருந்தாலும், இந்த இரண்டு நூலகங்களையும் நான் சேர்த்தால், நான் ரியாக்டைப் பயன்படுத்தலாமா?
- சரியாக இல்லை. நீங்கள் Babel ஐச் சேர்க்க வேண்டும், பின்னர் நீங்கள் React ஐப் பயன்படுத்தலாம்.
மற்றொரு நூலகமா? பேபல் என்றால் என்ன?
-ஓ, Babel என்பது JavaScript இன் எந்தப் பதிப்பிலும் நீங்கள் குறியீடு செய்யும் போது, JavaScript இன் குறிப்பிட்ட பதிப்புகளை குறிவைக்க உங்களை அனுமதிக்கும் ஒரு டிரான்ஸ்பைலர் ஆகும். ReactJS ஐப் பயன்படுத்த நீங்கள் Babel ஐச் சேர்க்க வேண்டியதில்லை, ஆனால் நீங்கள் ES5ஐப் பயன்படுத்துவதில் சிக்கிக்கொண்டீர்கள், உண்மையாக இருக்கட்டும், இது 2016 ஆம் ஆண்டு, மற்ற குளிர்ச்சியான குழந்தைகளைப் போலவே நீங்கள் ES2016+ இல் குறியிட வேண்டும்.
ES5? ES2016+? நான் இங்கே தொலைந்து போகிறேன். ES5 மற்றும் ES2016+ என்றால் என்ன?
-ES5 என்பது ECMAScript 5 ஐக் குறிக்கிறது. இது தற்போது பெரும்பாலான உலாவிகளால் செயல்படுத்தப்பட்டதால், பெரும்பாலான மக்கள் இலக்காகக் கொண்ட பதிப்பாகும்.
ECMAScript?
-ஆம், உங்களுக்குத் தெரியும், ஸ்கிரிப்டிங் நிலையான ஜாவாஸ்கிரிப்ட் 1995 இல் அதன் ஆரம்ப வெளியீட்டிற்குப் பிறகு 1999 இல் அடிப்படையாக கொண்டது, அப்போது ஜாவாஸ்கிரிப்ட் லைவ்ஸ்கிரிப்ட் என்று பெயரிடப்பட்டது மற்றும் நெட்ஸ்கேப் நேவிகேட்டரில் மட்டுமே இயங்கியது. அப்போது அது மிகவும் குழப்பமாக இருந்தது, ஆனால் அதிர்ஷ்டவசமாக இப்போது விஷயங்கள் மிகவும் தெளிவாக உள்ளன, மேலும் இந்த செயலாக்கத்தின் 7 பதிப்புகள் எங்களிடம் உள்ளன.
7 பதிப்புகள். உண்மையில். மற்றும் ES5 மற்றும் ES2016+?
- முறையே ஐந்தாவது மற்றும் ஏழாவது பதிப்பு.
காத்திருங்கள், ஆறாவது என்ன நடந்தது?
ES6 என்று சொல்கிறீர்களா? ஆமாம், அதாவது, ஒவ்வொரு பதிப்பும் முந்தைய பதிப்பின் சூப்பர்செட் ஆகும், எனவே நீங்கள் ES2016+ ஐப் பயன்படுத்துகிறீர்கள் என்றால், முந்தைய பதிப்புகளின் அனைத்து அம்சங்களையும் பயன்படுத்துகிறீர்கள்.
சரி. ES6க்கு மேல் ES2016+ஐ ஏன் பயன்படுத்த வேண்டும்?
-சரி, நீங்கள் ES6 ஐப் பயன்படுத்தலாம், ஆனால் ஒத்திசைவு மற்றும் காத்திருப்பு போன்ற சிறந்த அம்சங்களைப் பயன்படுத்த, நீங்கள் ES2016+ ஐப் பயன்படுத்த வேண்டும். இல்லையெனில், சரியான கட்டுப்பாட்டு ஓட்டத்திற்கான ஒத்திசைவற்ற அழைப்புகளைத் தடுக்க, கரோட்டின்களுடன் கூடிய ES6 ஜெனரேட்டர்களுடன் நீங்கள் சிக்கிக்கொண்டீர்கள்.
நீங்கள் என்ன சொன்னீர்கள் என்று எனக்குத் தெரியவில்லை, இந்த பெயர்கள் அனைத்தும் குழப்பமாக உள்ளன. பார், நான் ஒரு சர்வரில் இருந்து ஒரு கொத்து டேட்டாவை ஏற்றுகிறேன், நான் ஒரு CDN இலிருந்து jQuery ஐ மட்டும் சேர்க்க முடியும் மற்றும் AJAX அழைப்புகள் மூலம் டேட்டாவைப் பெற முடியும், என்னால் அதை ஏன் செய்ய முடியாது?
-இது 2016 மனிதன், இனி யாரும் jQuery ஐப் பயன்படுத்துவதில்லை, அது ஸ்பாகெட்டி குறியீட்டின் தொகுப்பில் முடிகிறது. அது எல்லோருக்கும் தெரியும்.
சரி. எனவே எனது மாற்று, தரவைப் பெற மூன்று நூலகங்களை ஏற்றுவது மற்றும் ஒரு HTML அட்டவணையைக் காண்பிப்பது.
-சரி, நீங்கள் அந்த மூன்று நூலகங்களைச் சேர்த்துள்ளீர்கள், ஆனால் ஒரே ஒரு கோப்பை மட்டும் ஏற்றுவதற்கு ஒரு தொகுதி மேலாளருடன் அவற்றைத் தொகுக்கவும்.
நான் பார்க்கிறேன். மற்றும் தொகுதி மேலாளர் என்றால் என்ன?
வரையறை சுற்றுச்சூழலைப் பொறுத்தது, ஆனால் வலையில் பொதுவாக AMD அல்லது CommonJS தொகுதிகளை ஆதரிக்கும் எதையும் குறிக்கிறோம்.
ரியிட். மற்றும் AMD மற்றும் CommonJS என்றால்...?
- வரையறைகள். பல ஜாவாஸ்கிரிப்ட் நூலகங்கள் மற்றும் வகுப்புகள் எவ்வாறு தொடர்பு கொள்ள வேண்டும் என்பதை விவரிக்க வழிகள் உள்ளன. உங்களுக்குத் தெரியுமா, ஏற்றுமதி மற்றும் தேவைகள்? AMD அல்லது CommonJS API ஐ வரையறுக்கும் பல ஜாவாஸ்கிரிப்ட் கோப்புகளை நீங்கள் எழுதலாம் மற்றும் அவற்றைத் தொகுக்க Browserify போன்றவற்றைப் பயன்படுத்தலாம்.
சரி, அது அர்த்தமுள்ளதாக இருக்கிறது... நான் நினைக்கிறேன். Browserify என்றால் என்ன?
-இது உலாவியில் இயக்கக்கூடிய கோப்புகளுக்கு CommonJS விவரித்த சார்புகளை தொகுக்க அனுமதிக்கும் ஒரு கருவியாகும். பெரும்பாலான மக்கள் அந்த சார்புகளை npm பதிவேட்டில் வெளியிடுவதால் இது உருவாக்கப்பட்டது.
npm பதிவேடு?
புத்திசாலிகள் குறியீடு மற்றும் சார்புகளை தொகுதிகளாக வைக்கும் மிகப் பெரிய பொது களஞ்சியமாகும்.
CDN போன்றதா?
- உண்மையில் இல்லை. இது ஒரு மையப்படுத்தப்பட்ட தரவுத்தளத்தைப் போன்றது, அங்கு யார் வேண்டுமானாலும் நூலகங்களை வெளியிடலாம் மற்றும் பதிவிறக்கலாம், எனவே நீங்கள் அவற்றை உள்நாட்டில் மேம்பாட்டிற்காகப் பயன்படுத்தலாம் மற்றும் நீங்கள் விரும்பினால் அவற்றை CDN இல் பதிவேற்றலாம்.
ஓ, போவர் போல!
-ஆம், ஆனால் இப்போது 2016 ஆம் ஆண்டு, இனி யாரும் போவரைப் பயன்படுத்துவதில்லை.
ஓ, நான் பார்க்கிறேன்… எனவே நான் npm இலிருந்து நூலகங்களைப் பதிவிறக்க வேண்டுமா?
-ஆம். உதாரணமாக, நீங்கள் React ஐப் பயன்படுத்த விரும்பினால், நீங்கள் React தொகுதியைப் பதிவிறக்கி உங்கள் குறியீட்டில் இறக்குமதி செய்கிறீர்கள். ஒவ்வொரு பிரபலமான ஜாவாஸ்கிரிப்ட் நூலகத்திற்கும் நீங்கள் இதைச் செய்யலாம்.
ஓ, கோணல் போல!
-கோணமானது 2015 ஆகும். ஆனால் ஆம். VueJS அல்லது RxJS மற்றும் பிற குளிர்ச்சியான 2016 நூலகங்களுடன் கோணமும் இருக்கும். அவற்றைப் பற்றி அறிய வேண்டுமா?
ரியாக்டுடன் ஒட்டிக்கொள்வோம், நான் ஏற்கனவே பல விஷயங்களை இப்போது கற்றுக்கொண்டிருக்கிறேன். எனவே, நான் React ஐப் பயன்படுத்த வேண்டுமானால், அதை இந்த npm இலிருந்து பெற்று, இந்த Browserify விஷயத்தைப் பயன்படுத்த வேண்டுமா?
-ஆம்.
ஒரு சில சார்புகளைப் பிடித்து அவற்றை ஒன்றாக இணைப்பது மிகவும் சிக்கலானதாகத் தெரிகிறது.
-அதனால்தான், Browserify இயங்குவதை தானியக்கமாக்குவதற்கு, Grunt அல்லது Gulp அல்லது Broccoli போன்ற பணி நிர்வாகியைப் பயன்படுத்துகிறீர்கள். கர்மம், நீங்கள் Mimosa கூட பயன்படுத்தலாம்.
முணுமுணுப்பு? கல்ப்? ப்ரோக்கோலி? மிமோசா? கர்மம் நாம் இப்போது பேசுகிறோமா?
- பணி மேலாளர்கள். ஆனால் அவர்கள் இனி குளிர்ச்சியாக இல்லை. நாங்கள் அவற்றை 2015 இல் பயன்படுத்தினோம், பின்னர் நாங்கள் மேக்ஃபைல்களைப் பயன்படுத்தினோம், ஆனால் இப்போது எல்லாவற்றையும் Webpack மூலம் மூடுகிறோம்.
மேக்ஃபைல்களா? இது பெரும்பாலும் C அல்லது C++ திட்டங்களில் பயன்படுத்தப்படும் என்று நினைத்தேன்.
-ஆம், ஆனால் வெளிப்படையாக வலையில் நாம் விஷயங்களைச் சிக்கலாக்கி, பின்னர் அடிப்படைகளுக்குச் செல்வதை விரும்புகிறோம். ஒவ்வொரு வருடமும் அதைச் செய்கிறோம், அதற்காகக் காத்திருங்கள், ஓரிரு வருடங்களில் இணையத்தில் அசெம்பிளி செய்யப் போகிறோம்.
பெருமூச்சு. Webpack என்று எதையாவது குறிப்பிட்டுள்ளீர்களா?
-இது ஒரு பணி ரன்னராக இருக்கும்போது உலாவிக்கான மற்றொரு தொகுதி மேலாளர். இது Browserify இன் சிறந்த பதிப்பு போன்றது.
ஓ, சரி. அது ஏன் சிறந்தது?
-சரி, ஒருவேளை சிறப்பாக இல்லை, உங்கள் சார்புநிலைகள் எவ்வாறு இணைக்கப்பட வேண்டும் என்பதில் அதிக கருத்துடையது. Webpack வெவ்வேறு தொகுதி மேலாளர்களைப் பயன்படுத்த உங்களை அனுமதிக்கிறது, மேலும் CommonJS மட்டும் அல்ல, உதாரணமாக சொந்த ES6 ஆதரவு தொகுதிகள்.
இந்த முழு CommonJS/ES6 விஷயத்தால் நான் மிகவும் குழப்பமடைந்துள்ளேன்.
-எல்லோரும், ஆனால் நீங்கள் இனி SystemJS பற்றி கவலைப்படக்கூடாது.
இயேசு கிறிஸ்து, மற்றொரு பெயர்ச்சொல்-js. சரி, இந்த SystemJS என்றால் என்ன?
-சரி, Browserify மற்றும் Webpack 1.x போலல்லாமல், SystemJS என்பது டைனமிக் மாட்யூல் லோடர் ஆகும், இது ஒரு பெரிய கோப்பில் பல தொகுதிகளை இணைக்காமல் பல கோப்புகளில் இணைக்க அனுமதிக்கிறது.
காத்திருங்கள், ஆனால் எங்கள் நூலகங்களை ஒரு பெரிய கோப்பில் உருவாக்கி அதை ஏற்ற வேண்டும் என்று நினைத்தேன்!
-ஆம், ஆனால் HTTP/2 இப்போது வருவதால் பல HTTP கோரிக்கைகள் உண்மையில் சிறப்பாக உள்ளன.
காத்திருங்கள், ரியாக்டிற்கான மூன்று அசல் நூலகங்களை மட்டும் சேர்க்க முடியாதா??
- உண்மையில் இல்லை. அதாவது, CDNல் இருந்து வெளிப்புற ஸ்கிரிப்ட்களாக நீங்கள் சேர்க்கலாம், ஆனால் நீங்கள் இன்னும் Babel ஐ சேர்க்க வேண்டும்.
பெருமூச்சு. அது மோசமானது அல்லவா?
-ஆம், நீங்கள் முழு பேபல்-கோரையும் சேர்த்துக் கொள்வீர்கள், மேலும் அது உற்பத்திக்கு திறமையாக இருக்காது. தயாரிப்பின் போது, சாத்தானை வரவழைக்கும் சடங்கை வேகவைத்த முட்டை செய்முறையைப் போல தோற்றமளிக்கும் வகையில், உங்கள் திட்டத்தைத் தயார்படுத்த, நீங்கள் தொடர்ச்சியான முன் பணிகளைச் செய்ய வேண்டும். நீங்கள் சொத்துக்களை குறைக்க வேண்டும், அவற்றை அசிங்கப்படுத்த வேண்டும், மடிப்புக்கு மேலே உள்ள இன்லைன் css, ஸ்கிரிப்ட்களை ஒத்திவைக்க வேண்டும், அத்துடன்-
எனக்கு கிடைத்தது, கிடைத்தது. நீங்கள் நேரடியாக CDN இல் நூலகங்களைச் சேர்க்கவில்லை என்றால், அதை எப்படிச் செய்வீர்கள்?
-நான் அதை ஒரு Webpack + SystemJS + Babel காம்போவைப் பயன்படுத்தி டைப்ஸ்கிரிப்டில் இருந்து மாற்றுவேன்.
டைப்ஸ்கிரிப்ட்? ஜாவாஸ்கிரிப்ட்டில் குறியிடுகிறோம் என்று நினைத்தேன்!
-டைப்ஸ்கிரிப்ட் என்பது ஜாவாஸ்கிரிப்ட் அல்லது சிறப்பாகச் சொன்னால், ஜாவாஸ்கிரிப்ட்டின் சூப்பர்செட், குறிப்பாக ஜாவாஸ்கிரிப்ட் பதிப்பு ES6. நாங்கள் முன்பு பேசிய ஆறாவது பதிப்பு உங்களுக்குத் தெரியுமா?
ES2016+ ஏற்கனவே ES6 இன் சூப்பர்செட் என்று நினைத்தேன்! டைப்ஸ்கிரிப்ட் என்று அழைக்கப்படும் இந்த விஷயம் இப்போது நமக்கு ஏன் தேவை?
-ஓ, ஏனெனில் இது ஜாவாஸ்கிரிப்டை தட்டச்சு செய்த மொழியாகப் பயன்படுத்தவும், இயக்க நேரப் பிழைகளைக் குறைக்கவும் அனுமதிக்கிறது. இது 2016, உங்கள் ஜாவாஸ்கிரிப்ட் குறியீட்டில் சில வகைகளைச் சேர்க்க வேண்டும்.
மற்றும் டைப்ஸ்கிரிப்ட் வெளிப்படையாக அதை செய்கிறது.
டைப்ஸ்கிரிப்ட் என்பது ஜாவாஸ்கிரிப்ட்டின் சூப்பர்செட்டாக இருக்கும் போது, அது தட்டச்சு செய்வதை மட்டுமே சரிபார்க்கிறது, ஆனால் அது தொகுக்கப்பட வேண்டும்.
பெருமூச்சு... மற்றும் ஓட்டம்?
-இது Facebook இல் சில தோழர்களால் உருவாக்கப்பட்ட நிலையான வகை சரிபார்ப்பு. அவர்கள் அதை OCaml இல் குறியிட்டனர், ஏனெனில் செயல்பாட்டு நிரலாக்கம் அருமை.
OCaml? செயல்பாட்டு நிரலாக்கம்?
2016 ஆம் ஆண்டு இதைத் தான் குழந்தைகள் பயன்படுத்துகிறார்கள் என்பது உங்களுக்குத் தெரியுமா? செயல்பாட்டு நிரலாக்கம்? உயர் ஒழுங்கு செயல்பாடுகள்? கறி? தூய செயல்பாடுகள்?
நீங்கள் என்ன சொன்னீர்கள் என்று எனக்குத் தெரியவில்லை.
-ஆரம்பத்தில் யாரும் செய்வதில்லை. பாருங்கள், OOP ஐ விட செயல்பாட்டு நிரலாக்கம் சிறந்தது என்பதை நீங்கள் அறிந்து கொள்ள வேண்டும், அதைத்தான் 2016 இல் பயன்படுத்த வேண்டும்.
காத்திருங்கள், நான் கல்லூரியில் OOP கற்றுக்கொண்டேன், அது நல்லது என்று நினைத்தேன்?
ஆரக்கிள் வாங்குவதற்கு முன்பு ஜாவாவும் அப்படித்தான் இருந்தது. அதாவது, OOP நாட்களில் நன்றாக இருந்தது, அது இன்றும் அதன் பயன்பாடுகளைக் கொண்டுள்ளது, ஆனால் இப்போது அனைவரும் மாற்றியமைக்கும் நிலைகள் குழந்தைகளை உதைப்பதற்கு சமம் என்பதை உணர்கிறார்கள், எனவே இப்போது அனைவரும் மாறாத பொருள்கள் மற்றும் செயல்பாட்டு நிரலாக்கத்திற்கு நகர்கின்றனர். ஹாஸ்கெல் தோழர்கள் பல ஆண்டுகளாக இதை அழைக்கிறார்கள், - என்னை எல்ம் தோழர்களுடன் தொடங்க வேண்டாம்- ஆனால் அதிர்ஷ்டவசமாக வலையில் இப்போது ராம்தா போன்ற நூலகங்கள் உள்ளன, அவை எளிய ஜாவாஸ்கிரிப்ட்டில் செயல்பாட்டு நிரலாக்கத்தைப் பயன்படுத்த அனுமதிக்கின்றன.
அதற்காக பெயர்களை மட்டும் கைவிடுகிறீர்களா? என்ன ஆச்சு ராமண்டா?
-இல்லை. ராம்தா. லாம்ப்டாவைப் போல. டேவிட் சேம்பர்ஸ் நூலகம் தெரியுமா?
டேவிட் யார்?
- டேவிட் சேம்பர்ஸ். கூல் பையன். சராசரி ஆட்சி கவிழ்ப்பு விளையாட்டை விளையாடுகிறது. ராம்தாவுக்கு பங்களித்தவர்களில் ஒருவர். செயல்பாட்டு நிரலாக்கத்தைக் கற்றுக்கொள்வதில் நீங்கள் தீவிரமாக இருந்தால், எரிக் மெய்ஜரையும் சரிபார்க்கவும்.
மற்றும் எரிக் மெய்ஜர்…?
- செயல்பாட்டு நிரலாக்க பையனும். ரெண்டு பேரும். இந்த வித்தியாசமான வண்ண சட்டையைப் பயன்படுத்தும் போது அவர் சுறுசுறுப்பைக் குப்பையில் போடும் பல விளக்கக்காட்சிகள் அவரிடம் உள்ளன. Tj, Jash Kenas, Sindre Sorhus, Paul Irish, Addy Osmani- ஆகியோரின் சில விஷயங்களையும் நீங்கள் சரிபார்க்க வேண்டும்.
சரி நான் உன்னை அங்கே நிறுத்தப் போகிறேன். எல்லாமே நன்றாகவும் நன்றாகவும் இருக்கிறது, ஆனால் தரவைப் பெறுவதற்கும் அதைக் காண்பிப்பதற்கும் மிகவும் சிக்கலானது மற்றும் தேவையற்றது என்று நான் நினைக்கிறேன். டைனமிக் டேட்டாவைக் கொண்டு ஒரு அட்டவணையை உருவாக்க, நான் இவர்களைப் பற்றித் தெரிந்துகொள்ளவோ, இவற்றையெல்லாம் கற்றுக்கொள்ளவோ தேவையில்லை என்று நான் உறுதியாக நம்புகிறேன். எதிர்வினைக்கு வருவோம். ரியாக்ட் மூலம் சர்வரிலிருந்து தரவை எப்படிப் பெறுவது?
-சரி, நீங்கள் உண்மையில் ரியாக்ட் மூலம் தரவைப் பெறவில்லை, ரியாக்ட் மூலம் தரவைக் காண்பிக்கிறீர்கள்.
அட அடடா. தரவைப் பெற நீங்கள் எதைப் பயன்படுத்துகிறீர்கள்?
சேவையகத்திலிருந்து தரவைப் பெற Fetch ஐப் பயன்படுத்துகிறீர்கள்.
மன்னிக்கவும்? தரவைப் பெற Fetch ஐப் பயன்படுத்துகிறீர்களா? அந்த விஷயங்களை யார் பெயரிடுகிறார்களோ அவர்களுக்கு ஒரு சொற்களஞ்சியம் தேவை.
- எனக்கு தெரியும் சரியா? ஒரு சேவையகத்திற்கு எதிராக XMLHttpRequests ஐச் செயல்படுத்துவதற்கான சொந்த செயலாக்கத்தின் பெயரைப் பெறவும்.
ஓ, அஜாக்ஸ்.
-AJAX என்பது XMLHttpRequestகளின் பயன்பாடு மட்டுமே. ஆனால் நிச்சயம். ஃபெட்ச் வாக்குறுதிகளின் அடிப்படையில் அஜாக்ஸைச் செய்ய உங்களை அனுமதிக்கிறது, அதன் பிறகு நீங்கள் திரும்ப அழைப்பைத் தவிர்க்கலாம்.
நரகத்தில் திரும்ப அழைக்கவா?
- ஆமாம். ஒவ்வொரு முறையும் நீங்கள் சேவையகத்திற்கு எதிராக ஒத்திசைவற்ற கோரிக்கையைச் செய்யும்போது, அதன் பதிலுக்காக நீங்கள் காத்திருக்க வேண்டும், இது ஒரு செயல்பாட்டிற்குள் ஒரு செயல்பாட்டைச் சேர்க்க உங்களை அனுமதிக்கிறது, இது நரகத்திலிருந்து அழைப்பு பிரமிடு என்று அழைக்கப்படுகிறது.
ஓ, சரி. இந்த வாக்குறுதி அதை தீர்க்குமா?
- உண்மையில். வாக்குறுதிகள் மூலம் உங்கள் கால்பேக்குகளைக் கையாளுவதன் மூலம், குறியீட்டைப் புரிந்துகொள்வதற்கும், கேலி செய்வதற்கும் அவற்றைச் சோதிப்பதற்கும் எளிதாக எழுதலாம், அதே போல் ஒரே நேரத்தில் ஒரே நேரத்தில் கோரிக்கைகளைச் செய்யலாம் மற்றும் அவை அனைத்தும் ஏற்றப்படும் வரை காத்திருக்கலாம்.
Fetch மூலம் அதைச் செய்ய முடியுமா?
-ஆம், ஆனால் உங்கள் பயனர் எவர்கிரீன் உலாவியைப் பயன்படுத்தினால் மட்டுமே, இல்லையெனில் நீங்கள் ஃபெட்ச் பாலிஃபில் சேர்க்க வேண்டும் அல்லது கோரிக்கை, புளூபேர்ட் அல்லது ஆக்ஸியோஸைப் பயன்படுத்த வேண்டும்.
கடவுளின் பொருட்டு எத்தனை நூலகங்களை நான் தெரிந்து கொள்ள வேண்டும்? அவர்களில் எத்தனை பேர்?
- இது ஜாவாஸ்கிரிப்ட். ஒரே காரியத்தைச் செய்யும் ஆயிரக்கணக்கான நூலகங்கள் இருக்க வேண்டும். எங்களுக்கு நூலகங்கள் தெரியும், உண்மையில் எங்களிடம் சிறந்த நூலகங்கள் உள்ளன. எங்கள் நூலகங்கள் மிகவும் அழகாக இருக்கின்றன, சில சமயங்களில் கை ஃபியரியின் படங்களைச் சேர்க்கிறோம்.
கை ஃபியரி என்று சொன்னீர்களா? இதை முடித்து விடலாம். இந்த Bluebird, Request, Axios நூலகங்கள் என்ன செய்கின்றன?
-அவை வாக்குறுதிகளை வழங்கும் XMLHttpRequests செய்ய நூலகங்கள்.
jQuery இன் AJAX முறையும் வாக்குறுதிகளை வழங்கத் தொடங்கவில்லையா?
2016 இல் "ஜே" வார்த்தையை இனி பயன்படுத்த மாட்டோம். Fetch ஐப் பயன்படுத்தவும், அது உலாவியில் இல்லாதபோது பாலிஃபில் செய்யவும் அல்லது அதற்குப் பதிலாக Bluebird, Request அல்லது Axios ஐப் பயன்படுத்தவும். பிறகு, ஒரு ஒத்திசைவு செயல்பாடு மற்றும் ஏற்றத்தில் காத்திருப்புடன் வாக்குறுதியை நிர்வகிக்கவும், உங்களுக்கு சரியான கட்டுப்பாடு ஓட்டம் உள்ளது.
காத்திருங்கள் என்று நீங்கள் குறிப்பிடுவது இது மூன்றாவது முறையாகும், ஆனால் அது என்னவென்று எனக்குத் தெரியவில்லை.
ஒரு ஒத்திசைவற்ற அழைப்பைத் தடுக்க, காத்திருப்பு உங்களை அனுமதிக்கிறது, தரவைப் பெறும்போது சிறந்த கட்டுப்பாட்டைப் பெறவும், குறியீடு வாசிப்புத் திறனை ஒட்டுமொத்தமாக அதிகரிக்கவும் அனுமதிக்கிறது. இது அருமை, நீங்கள் Babel இல் நிலை-3 முன்னமைவைச் சேர்ப்பதை உறுதிசெய்ய வேண்டும் அல்லது தொடரியல்-அசின்க்-செயல்பாடுகள் மற்றும் Transform-async-to-generator செருகுநிரலைப் பயன்படுத்தவும்.
இது பைத்தியக்காரத்தனம்.
-இல்லை, பைத்தியக்காரத்தனமானது, நீங்கள் டைப்ஸ்கிரிப்ட் குறியீட்டை முன்கூட்டியே தொகுத்து, காத்திருப்பைப் பயன்படுத்த பேபல் மூலம் அதை டிரான்ஸ்பைல் செய்ய வேண்டும்.
என்ன? இது டைப்ஸ்கிரிப்ட்டில் சேர்க்கப்படவில்லையா?
-இது அடுத்த பதிப்பில் உள்ளது, ஆனால் பதிப்பு 1.7 இல் இது ES6 ஐ மட்டுமே குறிவைக்கிறது, எனவே நீங்கள் உலாவியில் காத்திருப்பைப் பயன்படுத்த விரும்பினால், முதலில் ES6 ஐ இலக்காகக் கொண்டு உங்கள் டைப்ஸ்கிரிப்ட் குறியீட்டைத் தொகுக்க வேண்டும், பின்னர் ES5 ஐ இலக்காகக் கொள்ள Babel ஐ தொகுக்க வேண்டும்.
இந்த நேரத்தில் எனக்கு என்ன சொல்வது என்று தெரியவில்லை.
- பார், இது எளிதானது. எல்லாவற்றையும் டைப்ஸ்கிரிப்ட்டில் குறியிடவும். Fetch ஐப் பயன்படுத்தும் அனைத்து தொகுதிக்கூறுகளும் ES6ஐ இலக்காகக் கொண்டு அவற்றைத் தொகுத்து, அவற்றை ஸ்டேஜ்-3 முன்னமைவில் Babel மூலம் மாற்றி, SystemJS உடன் ஏற்றுகின்றன. உங்களிடம் Fetch இல்லையென்றால், அதை பாலிஃபில் செய்யவும் அல்லது Bluebird, Request அல்லது Axios ஐப் பயன்படுத்தவும், மேலும் உங்கள் வாக்குறுதிகள் அனைத்தையும் காத்திருங்கள்.
எளிமையானது என்பதற்கு எங்களிடம் வெவ்வேறு வரையறைகள் உள்ளன. எனவே, அந்த சடங்கு மூலம் நான் இறுதியாக தரவைப் பெற்றேன், இப்போது அதை ரியாக்ட் மூலம் காட்ட முடியுமா?
உங்கள் விண்ணப்பம் ஏதேனும் மாநில மாற்றங்களைக் கையாளப் போகிறதா?
ஏர், நான் அப்படி நினைக்கவில்லை. நான் தரவைக் காட்ட வேண்டும்.
- ஓ, கடவுளுக்கு நன்றி. இல்லையெனில் நான் உங்களுக்கு Flux, மற்றும் Flummox, Alt, Fluxible போன்ற செயலாக்கங்களை விளக்க வேண்டியிருக்கும். நேர்மையாக இருந்தாலும், நீங்கள் Redux ஐப் பயன்படுத்த வேண்டும்.
நான் அந்த பெயர்களுக்கு மேல் பறக்கப் போகிறேன். மீண்டும், நான் தரவைக் காட்ட வேண்டும்.
-ஓ, நீங்கள் தரவைக் காட்டினால், தொடங்குவதற்கு எதிர்வினை தேவையில்லை. டெம்ப்ளேட்டிங் எஞ்சினுடன் நீங்கள் நன்றாக இருந்திருப்பீர்கள்.
நீங்கள் என்னை கேலி செய்கிறீர்களா? இது வேடிக்கையானது என்று நினைக்கிறீர்களா? உங்கள் அன்புக்குரியவர்களை இப்படித்தான் நடத்துகிறீர்களா?
- நீங்கள் எதைப் பயன்படுத்தலாம் என்பதை நான் விளக்குகிறேன்.
நிறுத்து. நிறுத்து.
-அதாவது, டெம்ப்ளேட்டிங் என்ஜினைப் பயன்படுத்தினாலும், நான் நீங்களாக இருந்தால், டைப்ஸ்கிரிப்ட் + SystemJS + Babel சேர்க்கையைப் பயன்படுத்துவேன்.
நான் ஒரு பக்கத்தில் தரவைக் காட்ட வேண்டும், சப் ஜீரோவின் அசல் MK மரணத்தைச் செய்யவில்லை. என்ன டெம்ப்ளேட்டிங் எஞ்சினைப் பயன்படுத்த வேண்டும் என்று என்னிடம் சொல்லுங்கள், நான் அதை அங்கிருந்து எடுக்கிறேன்.
- நிறைய இருக்கிறது, உங்களுக்குத் தெரிந்த ஒன்று எது?
அடடா, பெயர் நினைவில் இல்லை. அது வெகு காலத்திற்கு முன்பு.
-ஜே டெம்ப்ளேட்கள்? jQote? தூய்மையானதா?
எர், மணி அடிக்கவில்லை. இன்னொன்று?
- வெளிப்படைத்தன்மை? JSRender? மார்க்அப்ஜேஎஸ்? நாக்அவுட்ஜேஎஸ்? அந்த ஒன்று இருவழி பிணைப்பைக் கொண்டிருந்தது.
இன்னொன்று?
-PlatesJS? jQuery-tmpl? கைப்பிடிகள்? இன்னும் சிலர் அதைப் பயன்படுத்துகிறார்கள்.
இருக்கலாம். அந்த கடைசிக்கு ஒத்திருக்கிறதா?
-மீசை, அடிக்கோடிடுகிறதா? இப்போது லோடாஷில் கூட நேர்மையாக ஒன்று இருப்பதாக நான் நினைக்கிறேன், ஆனால் அவை 2014 ஆம் ஆண்டின் வகை.
ஏர்.. ஒருவேளை இது புதியதாக இருக்கலாம்.
-ஜேட்? DustJS?
இல்லை
-DotJS? EJS?
இல்லை
-நன்ஜக்ஸ்? ECT?
இல்லை
-மாஹ், எப்படியும் காபிஸ்கிரிப்ட் தொடரியல் யாருக்கும் பிடிக்காது. ஜேட்?
இல்லை, நீங்கள் ஏற்கனவே ஜேட் சொன்னீர்கள்.
- நான் பக் என்று அர்த்தம். நான் ஜேட் என்று சொன்னேன். அதாவது, ஜேட் இப்போது பக்.
பெருமூச்சு. இல்லை. ஞாபகம் இல்லை. நீங்கள் எதைப் பயன்படுத்துவீர்கள்?
-அநேகமாக ES6 சொந்த டெம்ப்ளேட் சரங்கள்.
நான் யூகிக்கிறேன். அதற்கு ES6 தேவைப்படுகிறது.
- சரி.
நான் எந்த உலாவியைப் பயன்படுத்துகிறேன் என்பதைப் பொறுத்து Babel தேவை.
- சரி.
முழு மைய நூலகத்தையும் சேர்க்காமல் சேர்க்க விரும்பினால், அதை npm இலிருந்து ஒரு தொகுதியாக ஏற்ற வேண்டும்.
- சரி.
இதற்கு, Browserify, அல்லது Wepback அல்லது பெரும்பாலும் SystemJS எனப்படும் வேறு விஷயம் தேவை.
- சரி.
இது Webpack ஆக இல்லாவிட்டால், ஒரு பணி ரன்னர் மூலம் நிர்வகிக்கப்பட வேண்டும்.
- சரி.
ஆனால், நான் செயல்பாட்டு நிரலாக்கம் மற்றும் தட்டச்சு செய்யப்பட்ட மொழிகளைப் பயன்படுத்த வேண்டும் என்பதால், முதலில் டைப்ஸ்கிரிப்டை முன்கூட்டியே தொகுக்க வேண்டும் அல்லது இந்த ஃப்ளோ விஷயத்தைச் சேர்க்க வேண்டும்.
- சரி.
நான் காத்திருப்பைப் பயன்படுத்த விரும்பினால், அதை Babel க்கு அனுப்பவும்.
- சரி.
அதனால் நான் ஃபெட்ச், வாக்குறுதிகள் மற்றும் கட்டுப்பாடு ஓட்டம் மற்றும் அந்த மந்திரம் அனைத்தையும் பயன்படுத்தலாம்.
ஆதரவு இல்லை என்றால், பாலிஃபில் ஃபெட்ச் செய்ய மறக்க வேண்டாம், சஃபாரி இன்னும் அதை கையாள முடியாது.
என்ன தெரியுமா. நாங்கள் இங்கே முடித்துவிட்டோம் என்று நினைக்கிறேன். உண்மையில், நான் முடித்துவிட்டேன் என்று நினைக்கிறேன். நான் இணையத்தை முடித்துவிட்டேன், ஜாவாஸ்கிரிப்டை முழுவதுமாக முடித்துவிட்டேன்.
-அது பரவாயில்லை, சில வருடங்களில் நாம் அனைவரும் எல்ம் அல்லது வெப்அசெம்பிளியில் குறியிடப் போகிறோம்.
நான் பின்பக்கம் திரும்பப் போகிறேன். இந்த பல மாற்றங்கள் மற்றும் பதிப்புகள் மற்றும் பதிப்புகள் மற்றும் கம்பைலர்கள் மற்றும் டிரான்ஸ்பைலர்களை என்னால் கையாள முடியாது. ஜாவாஸ்கிரிப்ட் சமூகம் இதை யாரேனும் தொடரலாம் என்று நினைத்தால் பைத்தியக்காரத்தனமானது.
- நான் கேட்கிறேன். நீங்கள் பைதான் சமூகத்தை முயற்சிக்க வேண்டும்.
ஏன்?
பைதான் 3 பற்றி எப்போதாவது கேள்விப்பட்டிருக்கிறீர்களா?
புதுப்பிப்பு: எழுத்துப்பிழைகள் மற்றும் தவறுகளை சுட்டிக்காட்டியதற்கு நன்றி, குறிப்பிட்டுள்ளபடி கட்டுரையை புதுப்பிக்கிறேன். HackerNews மற்றும் Reddit இல் கலந்துரையாடல் .