पिछले दो वर्षों में Svelte को बहुत प्रशंसा मिली है और यह “सिर्फ एक और फ्रंटएंड फ्रेमवर्क” होने से बहुत दूर है। इसने जेएस सर्वेक्षण 2019 के राज्य पर “वर्ष की सफलता” जीती, इसके बाद 2020 में संतुष्टि रेटिंग में शीर्ष पर रहा। इसे स्टैक ओवरफ्लो 2021 सर्वेक्षण में सबसे अधिक पसंद किया जाने वाला वेब ढांचा भी चुना गया।
छोटे बंडल आकार, बहुत अच्छे प्रदर्शन और उपयोग में आसानी के संयोजन के साथ Svelte डेवलपर्स से अपील करता है। साथ ही, यह ढेर सारे उपहारों से भरा हुआ आता है। निर्माण के लिए एक सरल राज्य प्रबंधन समाधान पहले से ही प्रदान किया गया है, साथ ही उपयोग के लिए तैयार संक्रमण और एनिमेशन भी। यह परिचयात्मक ट्यूटोरियल इस बात पर प्रकाश डालेगा कि Svelte इसे कैसे प्राप्त करता है। श्रृंखला में निम्नलिखित ट्यूटोरियल Svelte द्वारा प्रदान की जाने वाली विभिन्न संभावनाओं का उपयोग करके Svelte के साथ एप्लिकेशन को लागू करने के तरीके के बारे में अधिक विस्तार से जानेंगे।
द स्वेल्टे बैकस्टोरी
लेकिन पहले, Svelte पर एक छोटी सी कहानी। हालाँकि इसने केवल 2020 के दशक की शुरुआत में मुख्यधारा में प्रवेश किया, लेकिन Svelte बहुत लंबे समय से आसपास है।
गिटहब के लिए पहली प्रतिबद्धता 2016 के अंत में थी। इसके निर्माता रिच हैरिस हैं, एक ओपन-सोर्स विज़ार्ड जिसका सबसे प्रमुख अन्य आविष्कार रोलअप, एक आधुनिक बंडलर है। रिच हैरिस ने समाचार पत्रिका में काम किया अभिभावक उस समय एक ग्राफिक्स संपादक के रूप में। उनका दैनिक दिनचर्या वेबसाइट के लिए इंटरैक्टिव विज़ुअलाइज़ेशन बनाना था, और वह एक ऐसा टूल चाहते थे जो उन्हें बंडल आकार या गति से समझौता किए बिना आसानी से इन्हें लिखने दे। साथ ही, वह कुछ पहुंच योग्य चाहते थे ताकि अन्य कम तकनीक-प्रेमी सहयोगी तेजी से विज़ुअलाइज़ेशन बनाने में सक्षम हों।
इन्हीं जरूरतों में से स्वेल्ट का जन्म हुआ। समाचार कक्ष से शुरू होकर, स्वेल्ट ने जल्दी ही ओपन-सोर्स समुदाय में एक छोटे से अनुयायी को इकट्ठा किया। लेकिन यह अप्रैल 2019 तक नहीं था जब स्वेल्ट वास्तव में दुनिया के लिए जाना जाता था। इस तिथि ने संस्करण 3 की रिलीज़ को चिह्नित किया, जो कि डेवलपर अनुभव और स्वीकार्यता पर ध्यान देने के साथ एक पूर्ण पुनर्लेखन था। तब से, Svelte की लोकप्रियता बहुत बढ़ गई है, अधिक अनुरक्षक टीम में शामिल हो गए हैं, और रिच हैरिस यहां तक कि Svelte पर पूर्णकालिक काम करने के लिए Vercel में शामिल हो गए हैं।
Svelte में गहराई से ट्यूटोरियल के लिए, और इसमें React और Vue के अंतर हैं, Svelte 3: A Radical Compiler-based JavaScript Framework देखें।
एक साधारण पुस्तक सूची बनाना
चलो Svelte में गोता लगाएँ! हम एक छोटी पुस्तक सूची तैयार करेंगे जो हमें हमारी पठन सूची से पुस्तकों को जोड़ने और हटाने की अनुमति देती है। अंतिम परिणाम नीचे दी गई छवि जैसा कुछ दिखाई देगा।
हम अपने प्रोजेक्ट को प्रोजेक्ट टेम्प्लेट से स्कैफोल्ड करके शुरू करेंगे। हम अधिकारी का उपयोग करेंगे स्वेल्ट टेम्पलेट. विकल्प का उपयोग करना होगा a विटे-संचालित टेम्पलेट या उपयोग करने के लिए स्वेल्ट किटबिल्ट-इन रूटिंग के साथ पूर्ण विकसित ऐप्स बनाने के लिए Svelte के शीर्ष पर एक ढांचा-लेकिन हम इसे इस ट्यूटोरियल के लिए यथासंभव नंगे पांव रखेंगे।
टेम्प्लेट डाउनलोड करने के बाद, इसके फोल्डर में स्विच करें और रन करें npm install
, जो उन सभी पैकेजों को डाउनलोड करता है जिनकी हमें आवश्यकता है। फिर हम स्विच करेंगे App.svelte
जहां हम सामग्री को केवल-एचटीएमएल संस्करण से बदल देंगे ताकि हम अपने इच्छित दृश्य तैयार कर सकें:
<h4>Add Bookh4>
<input type="text" />
<h4>My Booksh4>
<ul>
<li>A bookli>
ul>
हम उपरोक्त कोड को सीधे Svelte फ़ाइल के शीर्ष स्तर पर लिख सकते हैं; हमें कोई रैपर तत्व जोड़ने की आवश्यकता नहीं है। Svelte का सिंटैक्स HTML का सुपरसेट है, इसलिए HTML फ़ाइल के अंदर जो कुछ भी मान्य है, वह Svelte फ़ाइल के अंदर मान्य है।
अब सवाल यह है कि वहां गतिशील भागों को कैसे प्राप्त किया जाए। हम स्क्रिप्ट में एक स्थिर सूची जोड़कर शुरू करेंगे और इसे एक लूप के माध्यम से प्रस्तुत करेंगे:
<script>
let books = ['Learning Svelte', 'The Zen of Cooking Tea'];
</script>
<label>
<h4>Add Book</h4>
<input type="text" />
</label>
<h4>My Books</h4>
<ul>
#each books as book
<li>book</li>
/each
</ul>
हमने जोड़ा script
टैग जिसमें हम अपने JavaScript लॉजिक को कॉम्पोनेंट से संबंधित रखते हैं। उस तर्क को हर बार घटक के माउंट होने पर निष्पादित किया जाता है। हम लूप बनाने और प्रत्येक पुस्तक के शीर्षक को प्रिंट करने के लिए विशेष Svelte सिंटैक्स के साथ HTML को भी बढ़ाते हैं। जैसा कि आप देख सकते हैं, Vue या Angular के विपरीत, Svelte में कंट्रोल फ्लो ब्लॉक्स के लिए अलग सिंटैक्स होता है, जो विशेष विशेषताओं के रूप में ऐसी कार्यक्षमता जोड़ते हैं। यह कोड को और अधिक पठनीय बनाता है, क्योंकि आप इसे अधिक आसानी से देख सकते हैं। यदि आप नियंत्रण प्रवाह ब्लॉक के भीतर एक से अधिक शीर्ष-स्तरीय आइटम रखना चाहते हैं तो यह रैपर तत्वों को बनाने के लिए अनावश्यक बनाता है।
किसी पुस्तक का शीर्षक चर को घुंघराले ब्रेसिज़ के साथ घेरकर आउटपुट किया जाता है। सामान्य तौर पर, जब भी आप टेम्पलेट के भीतर एक घुंघराले ब्रेस का सामना करते हैं, तो आप जानते हैं कि आप कुछ Svelte-संबंधित दर्ज कर रहे हैं। हम इस ट्यूटोरियल श्रृंखला के भाग 2 में टेम्पलेट सिंटैक्स पर अधिक विस्तार से विचार करेंगे।
उपयोगकर्ता इनपुट पर प्रतिक्रिया
अब हम अपने द्वारा परिभाषित पुस्तक शीर्षकों की एक मनमाना सूची प्रस्तुत कर सकते हैं books
चर। एक नई किताब जोड़ने के बारे में क्या? ऐसा करने के लिए, हमें अपने तर्क को बढ़ाने की जरूरत है tag and connect it to the
element:
<script>
let books = ['Learning Svelte', 'The Zen of Cooking Tea'];
let newBook = '';
function addBook(evt)
if (evt.key === 'Enter')
books = [...books, newBook];
newBook = '';
</script>
<label>
<h4>Add Book</h4>
<input type="text" bind:value=newBook on:keydown=addBook />
</label>
<h4>My Books</h4>
<ul>
#each books as book
<li>book</li>
/each
</ul>
We added a new variable called newBook
, which should mirror the input value. To do that, we bind it to the by writing
bind:value=newBook
. This establishes a two-way binding, so every time the user enters text into the ,
newBook
updates, and if newBook
is updated in the टैग, का प्रदर्शन मूल्य
परिवर्तन। हम सरल गतिशील विशेषताओं के साथ भी ऐसा कर सकते थे, लेकिन इस तरह हमें कुछ कोड बचाता है-एक विचार पैटर्न जिसे आप अक्सर Svelte में देखेंगे।
जब उपयोगकर्ता दबाता है प्रवेश करना, हम सूची में नई पुस्तक का शीर्षक जोड़ना चाहते हैं। ऐसा करने के लिए, हम एक DOM ईवेंट श्रोता जोड़ते हैं। Svelte को ईवेंट में शामिल होने के लिए कहने के लिए, हम बस बीच में एक कोलन जोड़ते हैं on
और शेष घटना का नाम—तो इस मामले में यह है on:keydown
. उसके बाद, हम घुंघराले ब्रेसिज़ का उपयोग करते हैं और फ़ंक्शन का नाम अंदर रखते हैं। हर बार जब घटना शुरू होती है तो फ़ंक्शन को कॉल किया जाता है। इस टेम्पलेट सिंटैक्स पर अधिक इस ट्यूटोरियल श्रृंखला के भाग 2 में पाया जा सकता है।
इस मामले में कॉल करने का कार्य है addBook
जिसमें हम कीबोर्ड ईवेंट की जांच करते हैं, और यदि उपयोगकर्ता वास्तव में दबाया जाता है प्रवेश करनाहम अद्यतन करते हैं books
चर। ए की कमी पर ध्यान दें this
संदर्भ जैसा कि हम कोणीय या Vue 2 में पाते हैं, या विशेष मूल्य की वस्तुओं की कमी जैसे Vue 3 में, या की कमी setState
प्रतिक्रिया में। यह जानने के लिए कि वेरिएबल अपडेट हो गया है, Svelte को इस मामले में अतिरिक्त सिंटैक्स की आवश्यकता नहीं है। यह जादू की तरह लग सकता है, लेकिन एक ही समय में "सिर्फ सादा सरल जावास्क्रिप्ट" की तरह भी।
यह समझने के लिए कि स्वेल्ट इसे कैसे प्राप्त करता है, हमें हुड के नीचे देखने की जरूरत है। Svelte वास्तव में a . के साथ क्या करता है .svelte
फ़ाइल, और यह इसे कब संसाधित करता है? उत्तर: Svelte वास्तव में एक कंपाइलर है! ब्राउज़र में आपका कोड लोड होने से पहले यह अधिकांश काम करता है। Svelte कोड को पार्स करता है और इसे नियमित जावास्क्रिप्ट में बदल देता है। पार्सिंग के दौरान, यह देखने में सक्षम है कि चर जैसे newBook
टेम्प्लेट में उपयोग किए जाते हैं, इसलिए इसे असाइनमेंट पुन: प्रस्तुत करने का कारण बनेंगे। इसलिए संकलन आउटपुट इन असाइनमेंट को a . पर कॉल के साथ लपेट देगा $$invalidate
फ़ंक्शन, जो अगले ब्राउज़र पेंट के लिए इस सटीक घटक के पुन: प्रस्तुतीकरण को शेड्यूल करेगा। यह Svelte के शानदार प्रदर्शन का रहस्य है: यह पहले से जानता है कि कौन से हिस्से रीरेंडर को ट्रिगर कर सकते हैं और फिर केवल इन सटीक स्थानों में काम करने की जरूरत है, शल्य चिकित्सा द्वारा DOM को अपडेट करना। यह भी कारण है कि Svelte अनुप्रयोगों के बंडल आकार इतने छोटे हैं: जो कुछ भी आवश्यक नहीं है वह आउटपुट का हिस्सा नहीं होगा, इसलिए Svelte अपने छोटे रनटाइम के हर हिस्से को छोड़ सकता है जिसकी आवश्यकता नहीं है। ए सॉल्वेट हैलो वर्ल्ड! ऐप का बंडल साइज सिर्फ 2.5KB है!
केवल देखने वाली बात यह है कि Svelte केवल असाइनमेंट की तलाश करता है। इसलिए हमें करने की ज़रूरत है books = [...books, newBook];
या books.push(newBook); books = books;
. अन्यथा, स्वेल्ट को यह नहीं पता होता books
अद्यतन किया है।
अंतिम समापन कार्य
हमने कर दिया! अब हम अपनी सूची में पुस्तकें देख और जोड़ सकते हैं! हालाँकि, यह उतना सुंदर नहीं दिखता है, तो चलिए अपने UI में कुछ अंतिम रूप देते हैं। सबसे पहले, हम अपने तत्वों को स्टाइल करने के लिए कुछ CSS जोड़ेंगे:
<!-- script and html code... -->
<style>
input
padding: 5px 10px;
li
list-style: none;
ul
padding: 5px 0;
</style>
जैसा कि आप देख सकते हैं, हम सिर्फ a . जोड़ते हैं
This is a online script & study materials downloading site, Here we are providing high quality of script & theme’s, plugin’s.
If you are facing any type of problems than contact us.
Thank you…