મજબૂત કમ્પોનન્ટ ડેવલપમેન્ટ માટે React ના isValidElement API નો અભ્યાસ કરો. React એલિમેન્ટ્સને કેવી રીતે વેલિડેટ કરવું તે શીખો, ભૂલો અટકાવો અને તમારી એપ્લિકેશન્સમાં અનુમાનિત વર્તણૂક સુનિશ્ચિત કરો.
React isValidElement: મજબૂત કમ્પોનન્ટ્સ માટે એલિમેન્ટ ટાઇપ ચેકિંગમાં નિપુણતા
રિએક્ટ ડેવલપમેન્ટની દુનિયામાં, તમારા કમ્પોનન્ટ્સની અખંડિતતા સુનિશ્ચિત કરવી સર્વોપરી છે. આનું એક મહત્ત્વપૂર્ણ પાસું એ છે કે તમે જે એલિમેન્ટ્સ સાથે કામ કરી રહ્યા છો તેના પ્રકારને માન્ય કરવું. રિએક્ટ આને પ્રાપ્ત કરવામાં તમારી મદદ કરવા માટે એક બિલ્ટ-ઇન API, isValidElement
પ્રદાન કરે છે. આ વ્યાપક માર્ગદર્શિકા isValidElement
ની જટિલતાઓમાં ઊંડાણપૂર્વક જશે, તેના હેતુ, ઉપયોગ અને મજબૂત અને અનુમાનિત રિએક્ટ એપ્લિકેશન્સ બનાવવા માટેના ફાયદાઓનું અન્વેષણ કરશે.
React.isValidElement શું છે?
React.isValidElement
એ રિએક્ટ લાઇબ્રેરીની અંદર એક સ્ટેટિક મેથડ છે જે તમને આપેલ વેલ્યુ માન્ય રિએક્ટ એલિમેન્ટ છે કે નહીં તે નક્કી કરવાની મંજૂરી આપે છે. રિએક્ટ એલિમેન્ટ એ રિએક્ટ એપ્લિકેશનના યુઝર ઇન્ટરફેસનો મૂળભૂત બિલ્ડિંગ બ્લોક છે. તે સ્ક્રીન પર તમે શું જોવા માંગો છો તેનું એક હલકું, અપરિવર્તનશીલ વર્ણન છે. એ નોંધવું અગત્યનું છે કે રિએક્ટ એલિમેન્ટ એ રિએક્ટ કમ્પોનન્ટ ઇન્સ્ટન્સ જેવું જ નથી. કમ્પોનન્ટ ઇન્સ્ટન્સ એ વાસ્તવિક ઓબ્જેક્ટ છે જે એલિમેન્ટની સ્થિતિ અને વર્તનનું સંચાલન કરે છે.
સારમાં, isValidElement
એક ટાઇપ ચેકર તરીકે કાર્ય કરે છે, જે પુષ્ટિ કરે છે કે તમે જે વેલ્યુનું નિરીક્ષણ કરી રહ્યા છો તે માન્ય રિએક્ટ એલિમેન્ટની રચના અને ગુણધર્મોને અનુરૂપ છે. આ એવા સંજોગોમાં ખાસ કરીને ઉપયોગી થઈ શકે છે જ્યાં તમે પ્રોપ્સ તરીકે એલિમેન્ટ્સ પ્રાપ્ત કરી રહ્યા છો, ગતિશીલ રીતે એલિમેન્ટ્સ બનાવી રહ્યા છો, અથવા વપરાશકર્તા દ્વારા જનરેટ કરેલી સામગ્રી સાથે કામ કરી રહ્યા છો જેમાં રિએક્ટ કમ્પોનન્ટ્સ શામેલ હોઈ શકે છે.
isValidElement નો ઉપયોગ શા માટે કરવો?
તમારા રિએક્ટ ડેવલપમેન્ટ વર્કફ્લોમાં isValidElement
ને સામેલ કરવાના ઘણા આકર્ષક કારણો છે:
- ભૂલો અટકાવવી: એલિમેન્ટ્સને માન્ય કરીને, તમે વિકાસ પ્રક્રિયામાં સંભવિત ભૂલોને વહેલી તકે પકડી શકો છો, તમારી એપ્લિકેશનમાં અનપેક્ષિત વર્તન અને ક્રેશને અટકાવી શકો છો. ઉદાહરણ તરીકે, જો તમે અપેક્ષા રાખતા હો કે કોઈ પ્રોપ રિએક્ટ એલિમેન્ટ હશે, પરંતુ તેના બદલે સાદો જાવાસ્ક્રિપ્ટ ઓબ્જેક્ટ પ્રાપ્ત થાય, તો
isValidElement
તમને આ સમસ્યાને ઓળખવામાં અને તેને સરળતાથી સંભાળવામાં મદદ કરી શકે છે. - અનુમાનિત વર્તણૂક સુનિશ્ચિત કરવી: જ્યારે તમે જાણો છો કે તમે જે વેલ્યુઝ સાથે કામ કરી રહ્યા છો તે માન્ય રિએક્ટ એલિમેન્ટ્સ છે, ત્યારે તમે વિશ્વાસ રાખી શકો છો કે તમારા કમ્પોનન્ટ્સ અપેક્ષા મુજબ વર્તશે. આ વધુ સ્થિર અને જાળવી શકાય તેવા કોડબેઝ તરફ દોરી જાય છે.
- કોડની વાંચનક્ષમતામાં સુધારો:
isValidElement
નો ઉપયોગ સ્પષ્ટપણે તમે જે ડેટા હેન્ડલ કરી રહ્યા છો તેના પ્રકાર વિશેની તમારી અપેક્ષાઓનું દસ્તાવેજીકરણ કરે છે, જે તમારા કોડને સમજવા અને જાળવવામાં સરળ બનાવે છે. - વપરાશકર્તા દ્વારા જનરેટ કરેલી સામગ્રીનું સંચાલન: જો તમારી એપ્લિકેશન વપરાશકર્તાઓને રિએક્ટ કમ્પોનન્ટ્સ શામેલ કરતી સામગ્રીનું યોગદાન આપવાની મંજૂરી આપે છે (દા.ત., રિચ ટેક્સ્ટ એડિટર દ્વારા), તો
isValidElement
તેને રેન્ડર કરતા પહેલા આ સામગ્રીને સેનિટાઇઝ અને માન્ય કરવામાં તમારી મદદ કરી શકે છે, જે સંભવિત સુરક્ષા જોખમોને ઘટાડે છે. - ડિબગીંગ: તમારી રિએક્ટ એપ્લિકેશન્સમાં સમસ્યાઓનું નિવારણ કરતી વખતે,
isValidElement
સમસ્યાના સ્ત્રોતને સંકુચિત કરવા માટે એક મૂલ્યવાન સાધન બની શકે છે. તમારા કોડમાં વિવિધ બિંદુઓ પર એલિમેન્ટ્સના પ્રકારને ચકાસીને, તમે ઝડપથી અનપેક્ષિત વેલ્યુઝને ઓળખી શકો છો અને તેમના મૂળ સુધી પાછા ટ્રેસ કરી શકો છો.
isValidElement નો ઉપયોગ કેવી રીતે કરવો
isValidElement
નો ઉપયોગ કરવો સીધોસાદો છે. તે એક જ આર્ગ્યુમેન્ટ લે છે, જે તમે જે વેલ્યુને તપાસવા માંગો છો તે છે, અને તે વેલ્યુ માન્ય રિએક્ટ એલિમેન્ટ છે કે નહીં તે દર્શાવતું બુલિયન પરત કરે છે.
મૂળભૂત ઉપયોગ
અહીં એક સરળ ઉદાહરણ છે:
import React from 'react';
function MyComponent(props) {
if (React.isValidElement(props.children)) {
return (
Valid React Element:
{props.children}
);
} else {
return Invalid React Element!
;
}
}
export default MyComponent;
આ ઉદાહરણમાં, MyComponent
એક children
પ્રોપ મેળવે છે અને તે માન્ય રિએક્ટ એલિમેન્ટ છે કે નહીં તે તપાસવા માટે isValidElement
નો ઉપયોગ કરે છે. જો તે હોય, તો કમ્પોનન્ટ બાળકોને div ની અંદર રેન્ડર કરે છે. નહિંતર, તે ભૂલ સંદેશ પ્રદર્શિત કરે છે.
શરતી રેન્ડરિંગ સાથેનું ઉદાહરણ
isValidElement
નો ઉપયોગ શરતી રીતે અલગ-અલગ સામગ્રી રેન્ડર કરવા માટે થઈ શકે છે, જે એના પર આધાર રાખે છે કે કોઈ વેલ્યુ માન્ય રિએક્ટ એલિમેન્ટ છે કે નહીં:
import React from 'react';
function DisplayElement(props) {
const element = props.element;
if (React.isValidElement(element)) {
return (
Element Preview:
{element}
);
} else {
return (
No valid React element to display.
);
}
}
export default DisplayElement;
આ ઉદાહરણમાં, DisplayElement
કમ્પોનન્ટ તપાસે છે કે element
પ્રોપ માન્ય રિએક્ટ એલિમેન્ટ છે કે નહીં. જો તે હોય, તો તે એલિમેન્ટને રેન્ડર કરે છે. નહિંતર, તે એક સંદેશ પ્રદર્શિત કરે છે જે દર્શાવે છે કે કોઈ માન્ય એલિમેન્ટ ઉપલબ્ધ નથી.
એરે ઇટરેશનમાં ઉપયોગ
જો તમે સંભવિત રિએક્ટ એલિમેન્ટ્સના એરે પર ઇટરેટ કરી રહ્યા છો, તો તમે કોઈપણ અમાન્ય વેલ્યુઝને ફિલ્ટર કરવા માટે isValidElement
નો ઉપયોગ કરી શકો છો:
import React from 'react';
function ElementList(props) {
const elements = props.elements;
const validElements = elements.filter(React.isValidElement);
return (
{validElements.map((element, index) => (
- {element}
))}
);
}
export default ElementList;
આ ઉદાહરણમાં, ElementList
કમ્પોનન્ટ પ્રોપ્સ તરીકે elements
નો એરે મેળવે છે. તે filter
મેથડનો ઉપયોગ isValidElement
સાથે કરીને માત્ર માન્ય રિએક્ટ એલિમેન્ટ્સ ધરાવતો નવો એરે બનાવે છે. આ માન્ય એલિમેન્ટ્સ પછી યાદી તરીકે રેન્ડર કરવામાં આવે છે.
isValidElement vs. PropTypes
જ્યારે isValidElement
રનટાઇમ પર વેલ્યુના પ્રકારને તપાસવા માટે ઉપયોગી છે, ત્યારે PropTypes વિકાસ દરમિયાન તમારા કમ્પોનન્ટ્સના પ્રોપ્સને માન્ય કરવા માટે વધુ વ્યાપક ઉકેલ પૂરો પાડે છે. PropTypes તમને દરેક પ્રોપ માટે અપેક્ષિત પ્રકાર, આવશ્યક સ્થિતિ અને અન્ય મર્યાદાઓ વ્યાખ્યાયિત કરવાની મંજૂરી આપે છે. જો કોઈ પ્રોપ આ જરૂરિયાતોને પૂર્ણ કરતું નથી, તો રિએક્ટ કન્સોલમાં ચેતવણી પ્રદર્શિત કરશે.
નીચેના ઉદાહરણનો વિચાર કરો:
import React from 'react';
import PropTypes from 'prop-types';
function MyComponent(props) {
return (
{props.element}
);
}
MyComponent.propTypes = {
element: PropTypes.element.isRequired,
};
export default MyComponent;
આ ઉદાહરણમાં, અમે એ સ્પષ્ટ કરવા માટે PropTypes નો ઉપયોગ કરી રહ્યા છીએ કે element
પ્રોપ રિએક્ટ એલિમેન્ટ હોવો જોઈએ અને તે જરૂરી છે. જો આપણે આ પ્રોપમાં નોન-એલિમેન્ટ વેલ્યુ પાસ કરવાનો પ્રયાસ કરીશું, તો રિએક્ટ વિકાસ દરમિયાન કન્સોલમાં ચેતવણી પ્રદર્શિત કરશે. PropTypes
માત્ર ડેવલપમેન્ટ મોડમાં જ કામ કરે છે, પ્રોડક્શનમાં નહીં.
તમારે isValidElement
vs. PropTypes નો ઉપયોગ ક્યારે કરવો જોઈએ?
- PropTypes: વિકાસ દરમિયાન પ્રોપ્સના સ્ટેટિક ટાઇપ ચેકિંગ માટે PropTypes નો ઉપયોગ કરો. આ ભૂલોને વહેલી તકે પકડવામાં મદદ કરે છે અને સુનિશ્ચિત કરે છે કે તમારા કમ્પોનન્ટ્સને અપેક્ષિત ડેટા મળે છે.
- isValidElement: રનટાઇમ પર ડાયનેમિક ટાઇપ ચેકિંગ માટે
isValidElement
નો ઉપયોગ કરો. આ એવી પરિસ્થિતિઓમાં ઉપયોગી છે જ્યાં તમે માત્ર PropTypes પર આધાર રાખી શકતા નથી, જેમ કે વપરાશકર્તા દ્વારા જનરેટ કરેલી સામગ્રી અથવા ગતિશીલ રીતે બનાવેલા એલિમેન્ટ્સ સાથે કામ કરતી વખતે.
ઘણા કિસ્સાઓમાં, તમે તમારા રિએક્ટ કમ્પોનન્ટ્સ માટે ટાઇપ ચેકિંગનું મજબૂત સ્તર પ્રદાન કરવા માટે PropTypes અને isValidElement
બંનેનો ઉપયોગ કરવા માંગશો. PropTypes વિકાસ દરમિયાન ભૂલો પકડી શકે છે, જ્યારે isValidElement
રનટાઇમ પર અનપેક્ષિત વેલ્યુઝને સંભાળી શકે છે.
isValidElement vs. TypeScript
TypeScript, PropTypes ની સરખામણીમાં વધુ મજબૂત સ્ટેટિક ટાઇપિંગ સોલ્યુશન ઓફર કરે છે. TypeScript નો ઉપયોગ કરતી વખતે, તમે તમારા પ્રોપ્સ અને વેરિયેબલ્સના પ્રકારો વ્યાખ્યાયિત કરી શકો છો, અને TypeScript કમ્પાઇલર વિકાસ દરમિયાન કોઈપણ ટાઇપ એરરને પકડી લેશે. આ રનટાઇમ ભૂલોના જોખમને નોંધપાત્ર રીતે ઘટાડી શકે છે અને તમારા કોડબેઝની એકંદર જાળવણીક્ષમતામાં સુધારો કરી શકે છે.
TypeScript માં રિએક્ટ એલિમેન્ટ પ્રોપ સાથે કમ્પોનન્ટને કેવી રીતે વ્યાખ્યાયિત કરી શકાય તે અહીં છે:
import React, { ReactElement } from 'react';
interface MyComponentProps {
element: ReactElement;
}
function MyComponent(props: MyComponentProps) {
return (
{props.element}
);
}
export default MyComponent;
આ ઉદાહરણમાં, અમે react
લાઇબ્રેરીમાંથી ReactElement
પ્રકારનો ઉપયોગ એ સ્પષ્ટ કરવા માટે કરી રહ્યા છીએ કે element
પ્રોપ રિએક્ટ એલિમેન્ટ હોવો જોઈએ. જો આપણે આ પ્રોપમાં નોન-એલિમેન્ટ વેલ્યુ પાસ કરવાનો પ્રયાસ કરીશું, તો TypeScript કમ્પાઇલર વિકાસ દરમિયાન ભૂલ જનરેટ કરશે.
TypeScript નો ઉપયોગ કરતી વખતે, તમને અમુક સંજોગોમાં isValidElement
હજુ પણ ઉપયોગી લાગી શકે છે, જેમ કે બાહ્ય સ્ત્રોતોમાંથી ડેટા સાથે કામ કરતી વખતે અથવા જ્યારે તમારે ડાયનેમિક સામગ્રી માટે રનટાઇમ ટાઇપ ચેકિંગ કરવાની જરૂર હોય. જોકે, TypeScript ની સ્ટેટિક ટાઇપિંગ ક્ષમતાઓ મોટાભાગના કિસ્સાઓમાં રનટાઇમ ટાઇપ ચેકિંગની જરૂરિયાતને નોંધપાત્ર રીતે ઘટાડી શકે છે.
અદ્યતન ઉપયોગના કિસ્સાઓ
ચિલ્ડ્રન પ્રોપ્સને માન્ય કરવું
કેટલીકવાર, તમે એ સુનિશ્ચિત કરવા માંગો છો કે કમ્પોનન્ટના children
પ્રોપમાં માત્ર માન્ય રિએક્ટ એલિમેન્ટ્સ જ હોય. તમે આને પ્રાપ્ત કરવા માટે React.Children.toArray
સાથે isValidElement
નો ઉપયોગ કરી શકો છો:
import React from 'react';
function ValidChildrenComponent(props) {
const children = React.Children.toArray(props.children);
const areAllValid = children.every(React.isValidElement);
if (areAllValid) {
return (
Valid Children:
{props.children}
);
} else {
return (
Invalid children detected!
);
}
}
export default ValidChildrenComponent;
આ ઉદાહરણમાં, અમે children
પ્રોપને એરેમાં રૂપાંતરિત કરવા માટે React.Children.toArray
નો ઉપયોગ કરી રહ્યા છીએ. પછી, અમે એરેના તમામ એલિમેન્ટ્સ માન્ય રિએક્ટ એલિમેન્ટ્સ છે કે નહીં તે તપાસવા માટે every
મેથડનો ઉપયોગ કરીએ છીએ. જો તે હોય, તો કમ્પોનન્ટ ચિલ્ડ્રનને રેન્ડર કરે છે. નહિંતર, તે ભૂલ સંદેશ પ્રદર્શિત કરે છે.
ફ્રેગમેન્ટ્સ સાથે કામ કરવું
રિએક્ટ ફ્રેગમેન્ટ્સ તમને DOM માં વધારાનો નોડ ઉમેર્યા વિના બહુવિધ એલિમેન્ટ્સને જૂથબદ્ધ કરવાની મંજૂરી આપે છે. ફ્રેગમેન્ટ્સ સાથે કામ કરતી વખતે, એ યાદ રાખવું અગત્યનું છે કે ફ્રેગમેન્ટ્સ પોતે isValidElement
દ્વારા રિએક્ટ એલિમેન્ટ્સ માનવામાં આવતા નથી. માત્ર ફ્રેગમેન્ટની અંદરના ચિલ્ડ્રનને જ એલિમેન્ટ્સ માનવામાં આવે છે.
અહીં એક ઉદાહરણ છે:
import React, { Fragment } from 'react';
function FragmentComponent(props) {
const fragment = (
First Element
Second Element
);
console.log('Is Fragment valid?', React.isValidElement(fragment)); // Output: false
console.log('Is first child valid?', React.isValidElement(fragment.props.children[0])); // Output: true
}
export default FragmentComponent;
આ ઉદાહરણમાં, React.isValidElement(fragment)
false
પરત કરે છે કારણ કે ફ્રેગમેન્ટ પોતે રિએક્ટ એલિમેન્ટ નથી. જોકે, React.isValidElement(fragment.props.children[0])
true
પરત કરે છે કારણ કે ફ્રેગમેન્ટની અંદરનું પ્રથમ ચાઇલ્ડ એક માન્ય રિએક્ટ એલિમેન્ટ છે.
શ્રેષ્ઠ પદ્ધતિઓ
isValidElement
નો શ્રેષ્ઠ ઉપયોગ કરવા માટે, આ શ્રેષ્ઠ પદ્ધતિઓનો વિચાર કરો:
- તેનો વ્યૂહાત્મક રીતે ઉપયોગ કરો:
isValidElement
નો વધુ પડતો ઉપયોગ કરશો નહીં. એવા વિસ્તારો પર ધ્યાન કેન્દ્રિત કરો જ્યાં તમે સંભવિત અવિશ્વસનીય ડેટા અથવા ગતિશીલ રીતે બનાવેલા એલિમેન્ટ્સ સાથે કામ કરી રહ્યા છો. - PropTypes અથવા TypeScript સાથે જોડો: વધુ વ્યાપક ટાઇપ ચેકિંગ સોલ્યુશન માટે PropTypes અથવા TypeScript સાથે
isValidElement
નો ઉપયોગ કરો. - માહિતીપ્રદ ભૂલ સંદેશા પ્રદાન કરો: જ્યારે
isValidElement
false
પરત કરે, ત્યારે વિકાસકર્તાઓને સમસ્યાને ઝડપથી ઓળખવામાં અને સુધારવામાં મદદ કરવા માટે સ્પષ્ટ અને માહિતીપ્રદ ભૂલ સંદેશા પ્રદાન કરો. - પ્રદર્શનને ધ્યાનમાં લો: જ્યારે
isValidElement
સામાન્ય રીતે કાર્યક્ષમ છે, ત્યારે તમારા કોડના પ્રદર્શન-નિર્ણાયક વિભાગોમાં તેનો વધુ પડતો ઉપયોગ ટાળો. - તમારા કોડનું દસ્તાવેજીકરણ કરો: તમારા કોડ કમેન્ટ્સમાં
isValidElement
ના હેતુ અને ઉપયોગનું સ્પષ્ટપણે દસ્તાવેજીકરણ કરો.
સામાન્ય ભૂલો
- એલિમેન્ટ્સને કમ્પોનન્ટ્સ સાથે ગૂંચવવું: યાદ રાખો કે
isValidElement
રિએક્ટ એલિમેન્ટ્સ માટે તપાસ કરે છે, રિએક્ટ કમ્પોનન્ટ ઇન્સ્ટન્સ માટે નહીં. - રનટાઇમ ચેક્સ પર વધુ પડતો આધાર: જ્યારે
isValidElement
ઉપયોગી છે, તે વિકાસ દરમિયાન યોગ્ય ટાઇપ ચેકિંગનો વિકલ્પ ન હોવો જોઈએ. - PropTypes અથવા TypeScript ચેતવણીઓને અવગણવી: PropTypes અથવા TypeScript દ્વારા જનરેટ થયેલી ચેતવણીઓ પર ધ્યાન આપો અને તેમને તાત્કાલિક સંબોધિત કરો.
- અમાન્ય એલિમેન્ટ્સને યોગ્ય રીતે હેન્ડલ ન કરવું: જ્યારે
isValidElement
false
પરત કરે, ત્યારે પરિસ્થિતિને યોગ્ય રીતે સંભાળો, જેમ કે ભૂલ સંદેશ પ્રદર્શિત કરવો અથવા ડિફોલ્ટ વેલ્યુ પ્રદાન કરવી.
નિષ્કર્ષ
React.isValidElement
એ મજબૂત અને અનુમાનિત રિએક્ટ એપ્લિકેશન્સ બનાવવા માટે એક મૂલ્યવાન સાધન છે. તેના હેતુ, ઉપયોગ અને મર્યાદાઓને સમજીને, તમે રિએક્ટ એલિમેન્ટ્સને માન્ય કરવા, ભૂલો અટકાવવા અને તમારા કોડબેઝની એકંદર ગુણવત્તા સુધારવા માટે તેનો અસરકારક રીતે ઉપયોગ કરી શકો છો. ભલે તમે વપરાશકર્તા દ્વારા જનરેટ કરેલી સામગ્રી, ગતિશીલ રીતે બનાવેલા એલિમેન્ટ્સ સાથે કામ કરી રહ્યા હોવ, અથવા ફક્ત ટાઇપ ચેકિંગનું વધારાનું સ્તર ઉમેરવા માંગતા હોવ, isValidElement
તમને વધુ વિશ્વસનીય અને જાળવણીક્ષમ રિએક્ટ કમ્પોનન્ટ્સ લખવામાં મદદ કરી શકે છે. વ્યાપક ટાઇપ ચેકિંગ વ્યૂહરચના માટે તેને PropTypes અથવા TypeScript સાથે જોડવાનું યાદ રાખો.
તમારા ડેવલપમેન્ટ વર્કફ્લોમાં isValidElement
ને સામેલ કરીને, તમે વૈશ્વિક પ્રેક્ષકો માટે વધુ સ્થિર અને વપરાશકર્તા-મૈત્રીપૂર્ણ વેબ એપ્લિકેશન્સ બનાવવામાં યોગદાન આપી શકો છો. તમારી રિએક્ટ ડેવલપમેન્ટ કૌશલ્યોને વધારવા અને તમારા પ્રોજેક્ટ્સની વિશ્વસનીયતા સુનિશ્ચિત કરવા માટે તેના વ્યૂહાત્મક ઉપયોગનો વિચાર કરો. શ્રેષ્ઠ પરિણામો માટે હંમેશા PropTypes અથવા TypeScript દ્વારા ડેવલપમેન્ટ-ટાઇમ વેલિડેશન અને isValidElement
સાથે રનટાઇમ વેલિડેશન બંનેને પ્રાધાન્ય આપવાનું યાદ રાખો.