React.js एप्लिकेशन बनाते समय, SVG आइकन को कुशलतापूर्वक प्रबंधित करना महत्वपूर्ण है। एसवीजी उत्तरदायी डिजाइन के लिए आवश्यक स्केलेबिलिटी और लचीलापन प्रदान करते हैं, लेकिन बड़ी परियोजनाओं में उन्हें संभालना बोझिल हो सकता है। यहीं पर svg-path-constant आता है, एक CLI टूल जिसे SVG पथों को पुन: प्रयोज्य स्थिरांकों में परिवर्तित करके आपके SVG वर्कफ़्लो को सुव्यवस्थित करने के लिए डिज़ाइन किया गया है।
पिछले लेख, "रिएक्ट.जेएस प्रोजेक्ट्स में एसवीजी आइकन प्रबंधन विकल्पों की एक व्यापक तुलना" में, मैंने एसवीजी आइकन को प्रबंधित करने के लिए विभिन्न तरीकों पर चर्चा की, जिसमें इनलाइन एसवीजी, एसवीजी स्प्राइट और प्रत्येक आइकन के लिए रिएक्ट घटकों का उपयोग शामिल है। जबकि प्रत्येक विधि के अपने फायदे और नुकसान हैं, एक चुनौती बनी हुई है: अपने एसवीजी पथों को व्यवस्थित और पुन: प्रयोज्य बनाए रखना।
एसवीजी पथों के लिए स्थिरांक का उपयोग छोटे बंडल आकार और तेज़ निर्माण समय प्रदान करता है।
svg-path-constants एक CLI उपकरण है जो आपको SVG फ़ाइलों से स्थिरांक उत्पन्न करने में मदद करता है, जिससे आपके रिएक्ट प्रोजेक्ट्स में SVG आइकन को एकीकृत और प्रबंधित करना आसान हो जाता है। यह एसवीजी पथों को जेएस स्थिरांक में परिवर्तित करता है, लचीले नामकरण सम्मेलनों का समर्थन करता है, और अनुकूलन योग्य आउटपुट की अनुमति देता है।
आप एनपीएक्स के साथ तुरंत एसवीजी-पथ-स्थिरांक का उपयोग शुरू कर सकते हैं:
npx svg-path-constants@latest
वैकल्पिक रूप से, आप इसे विश्व स्तर पर या एक देव निर्भरता के रूप में स्थापित कर सकते हैं:
npm install -g svg-path-constants npm install --save-dev svg-path-constants
मान लें कि आपके पास src/assets/icons में SVG फ़ाइलें हैं और आप src/components/Icon/paths.js में स्थिरांक उत्पन्न करना चाहते हैं:
npx svg-path-constants@latest -i src/assets/icons -o src/components/Icon/paths.js
आउटपुट उदाहरण:
// src/components/Icon/paths.js export const folderIcon1 = "M10 10 H 90 V 90 H 10 Z"; // Example SVG path export const folderIcon2 = "M20 20 H 80 V 80 H 20 Z"; // Example SVG path
एक अलग नामकरण प्रारूप निर्दिष्ट करें, जैसे पास्कलकेस:
npx svg-path-constants@latest -i src/assets/icons -o src/components/Icon/paths.js -f PascalCase
आउटपुट उदाहरण:
// src/components/Icon/paths.js export const FolderIcon1 = "M10 10 H 90 V 90 H 10 Z"; // Example SVG path export const FolderIcon2 = "M20 20 H 80 V 80 H 20 Z"; // Example SVG path
एक कस्टम टेम्पलेट के साथ नामकरण और फ़ाइल आउटपुट को नियंत्रित करें:
npx svg-path-constants@latest -i src/assets/icons -o src/components/Icon/{-2,-1}/{0}.js -t "{1,-3}"
आउटपुट उदाहरण:
// src/components/Icon/folder/icon1.js export const folderIcon1 = "M10 10 H 90 V 90 H 10 Z"; // Example SVG path // src/components/Icon/folder/icon2.js export const folderIcon2 = "M20 20 H 80 V 80 H 20 Z"; // Example SVG path
svg-path-constant अपारदर्शिता, भरण-अस्पष्टता, स्ट्रोक जैसी SVG विशेषताओं को परिवर्तित कर सकते हैं और पथ स्ट्रिंग के घटकों में भर सकते हैं।
उत्पन्न पथ स्थिरांक:
export const myIcon = "o0.5 O0.8 fff000 F00ff00 M10 10 H 90 V 90 H 10 Z";
यह सुविधा आपको एक संक्षिप्त और सूचनात्मक प्रतिनिधित्व बनाए रखते हुए आवश्यक शैली की जानकारी को सीधे पथ स्ट्रिंग के भीतर रखने की अनुमति देती है।
एक बार जब आप एसवीजी-पथ-स्थिरांक के साथ एसवीजी पथ स्थिरांक उत्पन्न कर लेते हैं, तो आप उन्हें आसानी से अपने रिएक्ट घटकों में एकीकृत कर सकते हैं। यह न केवल आपके कोड को साफ रखता है बल्कि आपके एप्लिकेशन में एसवीजी पथों के आसान पुन: उपयोग की अनुमति भी देता है।
मान लें कि आपने अपनी एसवीजी फ़ाइलों से स्थिरांक उत्पन्न करने के लिए निम्नलिखित कमांड पहले ही चला ली है:
npx svg-path-constants@latest -i src/assets/icons -o src/components/Icon/paths.js
यह कमांड निम्न जैसे स्थिरांक के साथ एक फ़ाइल src/components/Icon/paths.js उत्पन्न करता है:
// src/components/Icon/paths.js export const folderIcon1 = "M10 10 H 90 V 90 H 10 Z"; // Example SVG path export const folderIcon2 = "M20 20 H 80 V 80 H 20 Z"; // Example SVG path
अब, एक रिएक्ट घटक बनाएं जो उत्पन्न स्थिरांक का उपयोग करके इन एसवीजी आइकन को प्रस्तुत करता है।
import React from 'react'; import { folderIcon1, folderIcon2 } from './paths'; // Import the generated SVG path constants const parsePathData = (d) => { const pathElements = []; const pathCommands = d.split(/(o[\d.] |O[\d.] |f[0-9a-fA-F] |F[0-9a-fA-F] )/); // Split by style commands let attributes = null; pathCommands.forEach((text, i) => { const isCommand = Boolean(i % 2); if (isCommand) { if (!attributes) { attributes = {}; } const match = text.match(/^(o([\d.] ))?(O([\d.] ))?(f([0-9a-fA-F] ))?(F([0-9a-fA-F] ))?$/); const [, , opacity, , fillOpacity, , stroke, , fill] = match; if (opacity) attributes.opacity = opacity; if (fillOpacity) attributes["fill-opacity"] = fillOpacity; if (stroke) attributes.stroke = `#${stroke}`; if (fill) attributes.fill = `#${fill}`; return; } if (text.trim().length) { pathElements.push({ ...attributes, d: text }); } }); return pathElements; }; const SvgIcon = ({ d, size = 24, color = 'currentColor', ...props }) => { const pathElements = parsePathData(d); return ( ); }; const IconDemo = () => (); export default IconDemo;SVG Icon Examples
Folder Icon 1
Folder Icon 2
अब आप एसवीजी आइकन प्रदर्शित करने के लिए अपने रिएक्ट एप्लिकेशन में कहीं भी IconDemo घटक का उपयोग कर सकते हैं:
import React from 'react'; import ReactDOM from 'react-dom'; import IconDemo from './components/Icon/IconDemo'; ReactDOM.render(, document.getElementById('root') );
parsePathData फ़ंक्शन:
SvgIcon घटक:
IconDemo घटक:
मैं वर्तमान में एक एनपीएम लाइब्रेरी पर काम कर रहा हूं जो प्रत्येक उत्पन्न स्थिरांक के ऊपर टिप्पणियों के रूप में रेखापुंज छवियों (पीएनजी) को जोड़कर एसवीजी-पथ-स्थिरांक को बढ़ाएगा। यह सीधे आपके कोड में आइकन का एक दृश्य प्रतिनिधित्व प्रदान करेगा, जिससे एसवीजी पथों को पहचानना और प्रबंधित करना आसान हो जाएगा।
रिएक्ट परियोजनाओं में एसवीजी पथों को प्रबंधित करना कोई परेशानी की बात नहीं है। एसवीजी-पथ-स्थिरांक के साथ, आप अपने आइकन को व्यवस्थित, अपने कोड को साफ और अपने वर्कफ़्लो को कुशल रख सकते हैं। और जल्द ही, आइकन टिप्पणियों में रेखापुंज छवियां जोड़ने के लिए आगामी लाइब्रेरी के साथ, आपके पास अपनी एसवीजी संपत्तियों को प्रबंधित करने का और भी अधिक दृश्य और सहज तरीका होगा।
एसवीजी-पथ-स्थिरांक आज ही आज़माएं:
npx svg-path-constants@latest
और अधिक अपडेट के लिए बने रहें!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3