React API रेफ़रेंस

@reelkit/react के कंपोनेंट, props और मेथड का पूरा रेफ़रेंस।

Reel के props

ReelProps

Propटाइपडिफ़ॉल्टविवरण
countnumberज़रूरीआइटम की कुल संख्या
size[number, number]-[width, height] के रूप में चौड़ाई और ऊँचाई। छोड़ने पर ResizeObserver से अपने-आप नापता है
itemBuilder(index, indexInRange, size) => ReactElementज़रूरीहर स्लाइड रेंडर करने वाला फ़ंक्शन
direction'vertical' | 'horizontal''vertical'स्क्रॉल की दिशा
initialIndexnumber0शुरुआती index
loopbooleanfalseअनंत लूप चालू करता है
enableWheelbooleanfalseमाउस व्हील से नेविगेशन चालू करता है
wheelDebounceMsnumber200ms में व्हील इवेंट का debounce
enableNavKeysbooleantrueकीबोर्ड नेविगेशन चालू करता है
onNavKeyPress(increment: -1 | 1) => void-तीर वाली कुंजियों से नेविगेशन का कस्टम हैंडलर। डिफ़ॉल्ट prev/next व्यवहार की जगह लेता है।
transitionTransitionTransformFnslideTransitionट्रांज़िशन इफ़ेक्ट का फ़ंक्शन। बिल्ट-इन: slideTransition, fadeTransition, flipTransition, cubeTransition, zoomTransition
transitionDurationnumber300ms में एनिमेशन की अवधि
enableGesturesbooleantrueटच/माउस से खींचकर नेविगेशन चालू करता है
swipeDistanceFactornumber0.12स्वाइप की सीमा (0-1)
rangeExtractor(index: number, count: number) => number[]defaultRangeExtractorकौन-से index रेंडर हों, यह तय करने वाला कस्टम फ़ंक्शन
keyExtractor(index: number) => string-React reconciliation के लिए कस्टम key फ़ंक्शन (loop के साथ काम का)
apiRefRefObject<ReelApi>-API मेथड तक पहुँचने के लिए ref
classNamestring-कंटेनर एलिमेंट की CSS class
styleCSSProperties-कंटेनर एलिमेंट की inline styles
ariaLabelstring-carousel क्षेत्र का सुलभ लेबल, जिसे स्क्रीन रीडर पढ़ते हैं

Callbacks

Propटाइपविवरण
afterChange(index, indexInRange) => voidस्लाइड बदलना पूरा होने के बाद कॉल होता है
beforeChange(index, nextIndex, indexInRange) => voidस्लाइड बदलना शुरू होने से पहले कॉल होता है
onSlideDragStart(index) => voidखींचने का जेस्चर शुरू होने पर कॉल होता है
onSlideDragEnd(index) => voidखींचने का जेस्चर ख़त्म होने पर कॉल होता है
onSlideDragCanceled(index) => voidखींचना रद्द होने पर कॉल होता है

ReelApi के मेथड

apiRef के ज़रिए स्लाइडर के मेथड तक पहुँचें:

typescript
मेथडटाइपविवरण
next()() => voidअगली स्लाइड पर जाता है
prev()() => voidपिछली स्लाइड पर जाता है
goTo(index, animate?)(number, boolean?) => Promiseकिसी खास स्लाइड पर जाता है
adjust()() => voidस्लाइड की स्थितियाँ दोबारा निकालता है
observe()() => voidकीबोर्ड पर नज़र रखना शुरू करता है
unobserve()() => voidकीबोर्ड पर नज़र रखना बंद करता है

ReelIndicator के props

ReelIndicatorProps

Propटाइपडिफ़ॉल्टविवरण
countnumberautoआइटम की कुल संख्या। parent Reel के अंदर होने पर उससे अपने-आप जुड़ती है; अकेले इस्तेमाल करने पर साफ़ तौर पर पास करें
activenumberautoमौजूदा सक्रिय index। parent Reel के अंदर होने पर उससे अपने-आप जुड़ता है; अकेले इस्तेमाल करने पर साफ़ तौर पर पास करें
direction'vertical' | 'horizontal''vertical'इंडिकेटर की दिशा
radiusnumber3पिक्सेल में बिंदु का आकार
visiblenumber5दिखने वाले सामान्य आकार के बिंदुओं की अधिकतम संख्या
gapnumber4पिक्सेल में बिंदुओं के बीच की दूरी
activeColorstring'#fff'सक्रिय बिंदु का रंग
inactiveColorstring'rgba(255,255,255,0.5)'निष्क्रिय बिंदु का रंग
edgeScalenumber0.5किनारे पर overflow वाले बिंदुओं का scale
onDotClick(index: number) => void-बिंदु पर क्लिक होने पर callback
classNamestring-कस्टम CSS class
styleCSSProperties-कस्टम inline styles

Observer कंपोनेंट

Observe

core signals को React रेंडरिंग से जोड़ता है, parent को दोबारा रेंडर किए बिना। subscribe किए गए signals बदलने पर सिर्फ़ children फ़ंक्शन दोबारा चलता है।

tsx
Propटाइपडिफ़ॉल्टविवरण
signalsSubscribable[]requiredजिन signals को subscribe करना है। इनमें से किसी की भी सूचना children फ़ंक्शन को दोबारा चलाती है — और सिर्फ़ उसी को, parent को कभी नहीं।
children() => ReactElement | nullrequiredरेंडर फ़ंक्शन, जो हर बदलाव पर दोबारा चलता है। signal के मान इसके अंदर पढ़ें; बाहर पढ़ा गया मान एक बार पकड़ा जाता है और पुराना पड़ जाता है।

AnimatedObserve

एनिमेटेड value signals को subscribe करता है और requestAnimationFrame से धीरे-धीरे बीच के मान निकालता है।

tsx
Propटाइपडिफ़ॉल्टविवरण
signalSignal<AnimatedValue>required{ value, duration, done? } देने वाला signal। 0 से ज़्यादा अवधि मौजूदा मान से नए मान तक बीच के मान निकालती है; 0 सीधे वहीं पहुँचा देता है।
children(value: number) => ReactElementrequiredमौजूदा फ़्रेम का निकाला गया मान लेने वाला रेंडर फ़ंक्शन, जो synchronous रूप से लागू होता है ताकि DOM एनिमेशन के साथ चले।

Hooks

useBodyLock

body का स्क्रॉल lock करता है और scrollbar की चौड़ाई से होने वाले खिसकाव की भरपाई करता है।

typescript

useOverlayUrlState

OverlayUrlStateOptions

किसी overlay के लिए URL-स्टेट कंट्रोलर बनाता है, जिसे आप किसी *UrlOverlay को उसके controller prop के रूप में देते हैं।

पूरी जानकारी और उदाहरणों के लिए React गाइड में URL स्टेट देखें।

विकल्पटाइपडिफ़ॉल्टविवरण
paramstringज़रूरीसक्रिय स्लाइड रखने वाला query parameter, जैसे "photo"। पहले रेंडर पर पढ़ा जाता है और कंपोनेंट के पूरे जीवन में तय रहता है — बदलने के लिए दोबारा mount करें (उसे key दें)।
adapterUrlAdapterHistory APIपढ़ने और लिखने के लिए नेविगेशन सिस्टम। routing वाले ऐप में router पर आधारित adapter पास करें, ताकि router की अपनी location पुरानी न पड़े। पहले रेंडर पर पढ़ा जाता है और कंपोनेंट के पूरे जीवन में तय रहता है — बदलने के लिए दोबारा mount करें।
codec{ decode(raw) => Id | null; encode(id) => string }ज़रूरीwire का रूप: parameter का टेक्स्ट ↔ स्थिर पहचान, collection से बेख़बर। एक ही Id साझा करने वाली मेल खाती जोड़ी के रूप में locator के साथ चलता है — डिफ़ॉल्ट ?photo=3 index गैलरी के लिए ...urlIndexKey(() => images.length) spread करें, या अपना (base64, slug) दें ताकि गैलरी का क्रम बदलने पर भी bookmark काम करे। हर बार ताज़ा पढ़ा जाता है: अगला decode या encode आख़िरी रेंडर का codec करता है।
locator{ locate(id) => number | null; locateAsync?(id) => Promise<number | null>; identify(index) => id }ज़रूरीपहचान को स्थिति से जोड़ता है और उसकी वैधता खुद संभालता है: locate (sync), locateAsync (पेज वाली गैलरी के लिए async विकल्प), identify (writes)। साधारण index गैलरी के लिए ...urlIndexKey(() => images.length) spread करें — यह यह locator और मेल खाता codec देता है और ?photo=3 को मौजूदा गिनती तक सीमित रखता है, इसलिए पुराना ?photo=99 कभी नाम न ली गई स्लाइड खोलने के बजाय URL से अपने-आप हट जाता है। पेज वाली फ़ीड या पहचान से key होने वाली गैलरी इसकी जगह अपनी मेल खाती codec + locator जोड़ी देती है। हर बार ताज़ा पढ़ा जाता है: अगली खोज का जवाब आख़िरी रेंडर का locator देता है, और रेंडरों के बीच locateAsync जोड़ना या हटाना अगली बार न मिलने पर लागू होता है।

useViewedState

ViewedStateOptions

याद रखता है कि दर्शक गैलरी में कहाँ तक पहुँचा, और जब तक कंपोनेंट मौजूद है, storage पर नज़र रखता है। वही key पास करें जो address bar इस्तेमाल करता है, तो सहेजी गई entry ठीक शेयर किए गए लिंक के parameter जैसी पढ़ी जाती है। entries को Observe के ज़रिए पढ़ें, ताकि यहाँ या किसी दूसरे tab में स्थिति दर्ज होने पर ring फिर से बने।

tsx

useReactRouterUrlAdapter

React Router पर आधारित UrlAdapter। routing वाले ऐप में इसे useOverlayUrlState के adapter विकल्प के रूप में पास करें, ताकि नेविगेशन की सच्चाई का अकेला स्रोत router ही रहे — router के पीछे history.pushState लिखने से उसकी location पुरानी पड़ जाती है और उसका अगला नेविगेशन parameter गिरा देता है। Writes सिर्फ़ query को छूते हैं, इसलिए pathname और hash बिना बदले साथ चलते हैं। हर बदलाव बताता है कि router ने उसी पेज पर push किया, replace किया या history में आगे-पीछे गया, इसलिए <Link> से खुली गैलरी back के एक कदम से बंद होती है।

यह अपने अलग subpath से आता है, इसलिए बिना router वाला ऐप react-router-dom को कभी अपने बंडल में नहीं खींचता। react-router-dom एक वैकल्पिक peer dependency है।

tsx

सुलभता

<Reel> aria-roledescription="carousel" के साथ role="region" के रूप में रेंडर होता है। क्षेत्र को स्क्रीन रीडर के लिए नाम देने के लिए ariaLabel prop सेट करें। एक polite live region हर स्लाइड बदलने पर carousel को दोबारा रेंडर किए बिना "Slide N of M" बोलता है। निष्क्रिय स्लाइडों को inert attribute मिलता है, ताकि फ़ोकस और सहायक तकनीक का नेविगेशन उन्हें छोड़ दे।

<ReelIndicator> बिंदुओं पर roving tabindex के साथ role="tablist" के रूप में रेंडर होता है; तीर वाली कुंजियाँ फ़ोकस खिसकाती हैं और Enter या Space स्लाइड सक्रिय करता है।

<Reel> के आसपास अपना modal बना रहे हैं? फ़ोकस लौटाने और रोकने के लिए captureFocusForReturn, createFocusTrap और getFocusableElements @reelkit/react से भी export होते हैं।

यूटिलिटी

createDefaultKeyExtractorForLoop

ऐसा key extractor बनाता है जो loop चालू होने पर दोहराए गए index संभालता है।

tsx