రియాక్ట్ experimental_postpone: మెరుగైన వినియోగదారు అనుభవం కోసం ఎగ్జిక్యూషన్ వాయిదాను నేర్చుకోవడం | MLOG | MLOG
తెలుగు
రియాక్ట్ యొక్క experimental_postpone పై ఒక లోతైన గైడ్. ఇది అప్లికేషన్ పనితీరు మరియు వినియోగదారు అనుభవాన్ని ఆప్టిమైజ్ చేయడానికి దాని సామర్థ్యాలు, ప్రయోజనాలు మరియు ఆచరణాత్మక అమలును విశ్లేషిస్తుంది.
రియాక్ట్ నిరంతరం అభివృద్ధి చెందుతోంది, పనితీరు మరియు డెవలపర్ అనుభవాన్ని మెరుగుపరచడానికి కొత్త ఫీచర్లు మరియు APIలు రూపొందించబడ్డాయి. అటువంటి ఒక ఫీచర్, ప్రస్తుతం ప్రయోగాత్మకమైనది, experimental_postpone. ఈ శక్తివంతమైన సాధనం డెవలపర్లను రియాక్ట్ కాంపోనెంట్ ట్రీలో నిర్దిష్ట అప్డేట్ల అమలును వ్యూహాత్మకంగా ఆలస్యం చేయడానికి అనుమతిస్తుంది, ఇది గణనీయమైన పనితీరు మెరుగుదలలకు మరియు సున్నితమైన, మరింత ప్రతిస్పందించే వినియోగదారు ఇంటర్ఫేస్కు దారితీస్తుంది. ఈ గైడ్ experimental_postpone యొక్క ప్రయోజనాలు, వినియోగ కేసులు మరియు అమలు వ్యూహాలను అన్వేషిస్తూ దాని గురించి ఒక సమగ్ర అవలోకనాన్ని అందిస్తుంది.
experimental_postpone అంటే ఏమిటి?
experimental_postpone అనేది రియాక్ట్ అందించిన ఒక ఫంక్షన్, ఇది ఒక అప్డేట్ను (ప్రత్యేకంగా, DOMకు ఒక మార్పును కమిట్ చేయడం) ఆలస్యం చేయాలని రియాక్ట్ రెండరర్కు సూచించడానికి మిమ్మల్ని అనుమతిస్తుంది. ఇది డీబౌన్సింగ్ లేదా థ్రోట్లింగ్ వంటి టెక్నిక్ల కంటే భిన్నంగా ఉంటుంది, ఇవి ఒక అప్డేట్ ట్రిగ్గర్ అవ్వడాన్ని ఆలస్యం చేస్తాయి. బదులుగా, experimental_postpone రియాక్ట్ను అప్డేట్ను ప్రారంభించడానికి అనుమతిస్తుంది, కానీ DOMకు మార్పులు చేసే ముందు దానిని నిలిపివేస్తుంది. ఆ అప్డేట్ను తరువాత పునఃప్రారంభించవచ్చు.
ఇది రియాక్ట్ సస్పెన్స్ మరియు కాంకరెన్సీ ఫీచర్లతో అంతర్గతంగా ముడిపడి ఉంది. ఒక కాంపోనెంట్ సస్పెండ్ అయినప్పుడు (ఉదాహరణకు, కొనసాగుతున్న డేటా ఫెచ్ కారణంగా), సస్పెండ్ అయిన కాంపోనెంట్ దాని కంటెంట్ను రెండర్ చేయడానికి సిద్ధంగా ఉండే వరకు తోబుట్టువు లేదా పేరెంట్ కాంపోనెంట్ల అనవసరమైన రీ-రెండర్లను నివారించడానికి రియాక్ట్ experimental_postponeను ఉపయోగించవచ్చు. ఇది బాధించే లేఅవుట్ మార్పులను నివారిస్తుంది మరియు గ్రహించిన పనితీరును మెరుగుపరుస్తుంది.
దీనిని రియాక్ట్కు ఇలా చెప్పే మార్గంగా భావించండి: "హే, మీరు UI యొక్క ఈ భాగాన్ని అప్డేట్ చేయడానికి సిద్ధంగా ఉన్నారని నాకు తెలుసు, కానీ కొంచెం సేపు ఆగుదాం. త్వరలో మరింత ముఖ్యమైన అప్డేట్ రావచ్చు, లేదా మనం కొంత డేటా కోసం వేచి ఉండవచ్చు. మనం చేయగలిగితే అదనపు పనిని నివారిద్దాం."
experimental_postpone ఎందుకు ఉపయోగించాలి?
experimental_postpone యొక్క ప్రాథమిక ప్రయోజనం పనితీరు ఆప్టిమైజేషన్. వ్యూహాత్మకంగా అప్డేట్లను ఆలస్యం చేయడం ద్వారా, మీరు వీటిని చేయవచ్చు:
అనవసరమైన రీ-రెండర్లను తగ్గించడం: త్వరలో మళ్లీ అప్డేట్ చేయబడే కాంపోనెంట్ల రీ-రెండరింగ్ను నివారించండి.
గ్రహించిన పనితీరును మెరుగుపరచడం: మార్పులను కమిట్ చేయడానికి ముందు అవసరమైన అన్ని డేటా కోసం వేచి ఉండటం ద్వారా UI ఫ్లికరింగ్ మరియు లేఅవుట్ మార్పులను నివారించండి.
డేటా ఫెచింగ్ వ్యూహాలను ఆప్టిమైజ్ చేయడం: సున్నితమైన లోడింగ్ అనుభవం కోసం UI అప్డేట్లతో డేటా ఫెచింగ్ను సమన్వయం చేయండి.
ప్రతిస్పందనను పెంచడం: సంక్లిష్టమైన అప్డేట్లు లేదా డేటా ఫెచింగ్ ఆపరేషన్ల సమయంలో కూడా UIను ప్రతిస్పందించేలా ఉంచండి.
సారాంశంలో, experimental_postpone అప్డేట్లను ప్రాధాన్యత ఇవ్వడానికి మరియు సమన్వయం చేయడానికి మీకు సహాయపడుతుంది, రియాక్ట్ అవసరమైన రెండరింగ్ పనిని సరైన సమయంలో మాత్రమే చేసేలా చూస్తుంది, ఇది మరింత సమర్థవంతమైన మరియు ప్రతిస్పందించే అప్లికేషన్కు దారితీస్తుంది.
experimental_postpone వినియోగ కేసులు
experimental_postpone వివిధ సందర్భాలలో, ముఖ్యంగా డేటా ఫెచింగ్, సంక్లిష్టమైన UIలు మరియు రౌటింగ్తో కూడిన సందర్భాలలో ప్రయోజనకరంగా ఉంటుంది. ఇక్కడ కొన్ని సాధారణ వినియోగ కేసులు ఉన్నాయి:
1. సమన్వయ డేటా ఫెచింగ్ మరియు UI అప్డేట్లు
మీరు బహుళ API ఎండ్పాయింట్ల నుండి (ఉదా., వినియోగదారు సమాచారం, పోస్ట్లు, ఫాలోయర్లు) పొందిన వివరాలతో వినియోగదారు ప్రొఫైల్ను ప్రదర్శిస్తున్నారని ఊహించుకోండి. experimental_postpone లేకుండా, ప్రతి API కాల్ పూర్తి కావడం ఒక రీ-రెండర్ను ప్రేరేపించవచ్చు, ఇది వినియోగదారుకు బాధ కలిగించేలా అనిపించే UI అప్డేట్ల శ్రేణికి దారితీయవచ్చు.
experimental_postponeతో, అవసరమైన అన్ని డేటా పొందే వరకు మీరు ప్రొఫైల్ రెండరింగ్ను ఆలస్యం చేయవచ్చు. మీ డేటా ఫెచింగ్ లాజిక్ను సస్పెన్స్లో చుట్టండి, మరియు అన్ని సస్పెన్స్ బౌండరీలు పరిష్కరించబడే వరకు UI అప్డేట్ అవ్వకుండా ఉంచడానికి experimental_postponeను ఉపయోగించండి. ఇది మరింత సమన్వయ మరియు మెరుగుపరచబడిన లోడింగ్ అనుభవాన్ని సృష్టిస్తుంది.
}>
);
}
function UserInfo({ data }) {
// Hypothetical usage of experimental_postpone
// In a real implementation, this would be managed within React's
// internal scheduling during Suspense resolution.
// experimental_postpone("waiting-for-other-data");
return (
{data.name}
{data.bio}
);
}
function UserPosts({ posts }) {
return (
{posts.map(post => (
{post.title}
))}
);
}
function UserFollowers({ followers }) {
return (
{followers.map(follower => (
{follower.name}
))}
);
}
export default UserProfile;
```
వివరణ: ఈ ఉదాహరణలో, fetchUserData, fetchUserPosts, మరియు fetchUserFollowers అనేవి వివిధ API ఎండ్పాయింట్ల నుండి డేటాను పొందే అసమకాలిక ఫంక్షన్లు. ఈ కాల్స్ ప్రతి ఒక్కటి సస్పెన్స్ బౌండరీలో సస్పెండ్ అవుతాయి. ఈ ప్రామిస్లు అన్నీ పరిష్కరించబడే వరకు రియాక్ట్ UserProfile కాంపోనెంట్ను రెండర్ చేయడానికి వేచి ఉంటుంది, ఇది మెరుగైన వినియోగదారు అనుభవాన్ని అందిస్తుంది.
2. పరివర్తనలు మరియు రౌటింగ్ను ఆప్టిమైజ్ చేయడం
ఒక రియాక్ట్ అప్లికేషన్లో రూట్ల మధ్య నావిగేట్ చేస్తున్నప్పుడు, నిర్దిష్ట డేటా అందుబాటులోకి వచ్చే వరకు లేదా ఒక ట్రాన్సిషన్ యానిమేషన్ పూర్తయ్యే వరకు కొత్త రూట్ యొక్క రెండరింగ్ను ఆలస్యం చేయాలనుకోవచ్చు. ఇది ఫ్లికరింగ్ను నివారించగలదు మరియు సున్నితమైన దృశ్య పరివర్తనను నిర్ధారించగలదు.
ఒక సింగిల్-పేజ్ అప్లికేషన్ (SPA)ను పరిగణించండి, ఇక్కడ కొత్త రూట్కు నావిగేట్ చేయడానికి కొత్త పేజీ కోసం డేటాను పొందడం అవసరం. రియాక్ట్ రూటర్ వంటి లైబ్రరీతో experimental_postponeను ఉపయోగించడం ద్వారా డేటా సిద్ధమయ్యే వరకు కొత్త పేజీని రెండర్ చేయకుండా నిలిపివేయవచ్చు, ఈలోగా లోడింగ్ ఇండికేటర్ లేదా ట్రాన్సిషన్ యానిమేషన్ను ప్రదర్శించవచ్చు.
ఉదాహరణ (రియాక్ట్ రూటర్తో భావనాత్మక):
```javascript
import { BrowserRouter as Router, Route, Switch, useLocation } from 'react-router-dom';
import { experimental_postpone, Suspense } from 'react';
function Home() {
return
Home Page
;
}
function About() {
const aboutData = fetchDataForAboutPage();
return (
Loading About Page...}>
);
}
function AboutContent({ data }) {
return (
About Us
{data.description}
);
}
function App() {
return (
);
}
// Hypothetical data fetching function
function fetchDataForAboutPage() {
// Simulate data fetching delay
return new Promise(resolve => {
setTimeout(() => {
resolve({ description: "This is the about page." });
}, 1000);
});
}
export default App;
```
వివరణ: వినియోగదారు "/about" రూట్కు నావిగేట్ చేసినప్పుడు, About కాంపోనెంట్ రెండర్ చేయబడుతుంది. fetchDataForAboutPage ఫంక్షన్ అబౌట్ పేజీకి అవసరమైన డేటాను పొందుతుంది. డేటా ఫెచ్ అవుతున్నప్పుడు Suspense కాంపోనెంట్ లోడింగ్ ఇండికేటర్ను ప్రదర్శిస్తుంది. మళ్లీ, AboutContent కాంపోనెంట్ లోపల experimental_postpone యొక్క ఊహాత్మక వినియోగం రెండరింగ్పై మరింత సూక్ష్మ నియంత్రణను అనుమతిస్తుంది, సున్నితమైన పరివర్తనను నిర్ధారిస్తుంది.
3. క్లిష్టమైన UI అప్డేట్లకు ప్రాధాన్యత ఇవ్వడం
బహుళ ఇంటరాక్టివ్ ఎలిమెంట్స్తో కూడిన సంక్లిష్ట UIలలో, కొన్ని అప్డేట్లు ఇతరుల కంటే క్లిష్టంగా ఉండవచ్చు. ఉదాహరణకు, ప్రోగ్రెస్ బార్ను అప్డేట్ చేయడం లేదా ఎర్రర్ మెసేజ్ను ప్రదర్శించడం అనేది అనవసరమైన కాంపోనెంట్ను రీ-రెండరింగ్ చేయడం కంటే ముఖ్యమైనది కావచ్చు.
experimental_postponeను తక్కువ క్లిష్టమైన అప్డేట్లను ఆలస్యం చేయడానికి ఉపయోగించవచ్చు, ఇది రియాక్ట్ను మరింత ముఖ్యమైన UI మార్పులకు ప్రాధాన్యత ఇవ్వడానికి అనుమతిస్తుంది. ఇది అప్లికేషన్ యొక్క గ్రహించిన ప్రతిస్పందనను మెరుగుపరుస్తుంది మరియు వినియోగదారులు మొదట అత్యంత సంబంధిత సమాచారాన్ని చూసేలా నిర్ధారిస్తుంది.
experimental_postponeను అమలు చేయడం
experimental_postpone యొక్క ఖచ్చితమైన API మరియు వినియోగం ప్రయోగాత్మక దశలో ఉన్నందున మారవచ్చు, కానీ ప్రధాన భావన ఏమిటంటే, ఒక అప్డేట్ ఆలస్యం కావాలని రియాక్ట్కు సూచించడం. మీ కోడ్లోని నమూనాల ఆధారంగా వాయిదా ఎప్పుడు ప్రయోజనకరంగా ఉంటుందో స్వయంచాలకంగా ఊహించే మార్గాలపై రియాక్ట్ బృందం పనిచేస్తోంది.
experimental_postponeను అమలు చేయడానికి మీరు అనుసరించగల ఒక సాధారణ రూపురేఖ ఇక్కడ ఉంది, వివరాలు మారవచ్చని గుర్తుంచుకోండి:
experimental_postponeను ఇంపోర్ట్ చేయండి:react ప్యాకేజీ నుండి ఫంక్షన్ను ఇంపోర్ట్ చేయండి. మీ రియాక్ట్ కాన్ఫిగరేషన్లో ప్రయోగాత్మక ఫీచర్లను ఎనేబుల్ చేయాల్సి రావచ్చు.
వాయిదా వేయాల్సిన అప్డేట్ను గుర్తించండి: మీరు ఏ కాంపోనెంట్ అప్డేట్ను ఆలస్యం చేయాలనుకుంటున్నారో నిర్ణయించండి. ఇది సాధారణంగా తక్షణమే క్లిష్టమైనది కాని లేదా తరచుగా ప్రేరేపించబడే అప్డేట్.
experimental_postponeను కాల్ చేయండి: అప్డేట్ను ప్రేరేపించే కాంపోనెంట్లో, experimental_postponeను కాల్ చేయండి. ఈ ఫంక్షన్ వాయిదాను గుర్తించడానికి ఒక ప్రత్యేకమైన కీ (స్ట్రింగ్)ను ఆర్గ్యుమెంట్గా తీసుకుంటుంది. రియాక్ట్ ఈ కీని వాయిదా వేసిన అప్డేట్ను నిర్వహించడానికి మరియు ట్రాక్ చేయడానికి ఉపయోగిస్తుంది.
కారణాన్ని అందించండి (ఐచ్ఛికం): ఎల్లప్పుడూ అవసరం లేనప్పటికీ, వాయిదాకు వివరణాత్మక కారణాన్ని అందించడం రియాక్ట్ అప్డేట్ షెడ్యూలింగ్ను ఆప్టిమైజ్ చేయడానికి సహాయపడుతుంది.
హెచ్చరికలు:
ప్రయోగాత్మక స్థితి:experimental_postpone ఒక ప్రయోగాత్మక ఫీచర్ అని గుర్తుంచుకోండి మరియు భవిష్యత్ రియాక్ట్ వెర్షన్లలో మారవచ్చు లేదా తీసివేయబడవచ్చు.
జాగ్రత్తగా ఉపయోగించడం:experimental_postponeను అతిగా ఉపయోగించడం పనితీరుపై ప్రతికూల ప్రభావం చూపుతుంది. స్పష్టమైన ప్రయోజనం ఉన్నప్పుడు మాత్రమే ఉపయోగించండి.
రియాక్ట్ సస్పెన్స్ మరియు experimental_postpone
experimental_postpone రియాక్ట్ సస్పెన్స్తో దగ్గరగా అనుసంధానించబడింది. సస్పెన్స్, డేటా లేదా వనరులు లోడ్ అయ్యే వరకు కాంపోనెంట్లు రెండరింగ్ను "సస్పెండ్" చేయడానికి అనుమతిస్తుంది. ఒక కాంపోనెంట్ సస్పెండ్ అయినప్పుడు, సస్పెండ్ అయిన కాంపోనెంట్ రెండర్ చేయడానికి సిద్ధమయ్యే వరకు UI యొక్క ఇతర భాగాల అనవసరమైన రీ-రెండర్లను నివారించడానికి రియాక్ట్ experimental_postponeను ఉపయోగించవచ్చు.
ఈ కలయిక అసమకాలిక ఆపరేషన్లతో వ్యవహరించేటప్పుడు కూడా, సున్నితమైన మరియు ప్రతిస్పందించే వినియోగదారు అనుభవాన్ని నిర్ధారిస్తూ, అధునాతన లోడింగ్ స్థితులు మరియు పరివర్తనలను సృష్టించడానికి మిమ్మల్ని అనుమతిస్తుంది.
పనితీరు పరిగణనలు
experimental_postpone పనితీరును గణనీయంగా మెరుగుపరచగలదు, కానీ దానిని వివేకంతో ఉపయోగించడం ముఖ్యం. అతిగా ఉపయోగించడం ఊహించని ప్రవర్తనకు దారితీయవచ్చు మరియు పనితీరును దెబ్బతీయవచ్చు. కింది వాటిని పరిగణించండి:
పనితీరును కొలవండి:experimental_postponeను అమలు చేయడానికి ముందు మరియు తరువాత మీ అప్లికేషన్ పనితీరును ఎల్లప్పుడూ కొలవండి, అది ఉద్దేశించిన ప్రయోజనాలను అందిస్తుందో లేదో నిర్ధారించుకోండి.
అతి-వాయిదాను నివారించండి: అనవసరంగా అప్డేట్లను వాయిదా వేయకండి. తక్షణమే క్లిష్టమైనవి కాని లేదా తరచుగా ప్రేరేపించబడే అప్డేట్లను మాత్రమే వాయిదా వేయండి.
రియాక్ట్ ప్రొఫైలర్ను పర్యవేక్షించండి: పనితీరు అడ్డంకులను గుర్తించడానికి మరియు experimental_postpone రెండరింగ్ ప్రవర్తనను ఎలా ప్రభావితం చేస్తుందో అర్థం చేసుకోవడానికి రియాక్ట్ ప్రొఫైలర్ను ఉపయోగించుకోండి.
ఉత్తమ పద్ధతులు
experimental_postponeను సమర్థవంతంగా ఉపయోగించుకోవడానికి, కింది ఉత్తమ పద్ధతులను పరిగణించండి:
సస్పెన్స్తో ఉపయోగించండి: లోడింగ్ స్థితులు మరియు పరివర్తనలపై సరైన నియంత్రణ కోసం experimental_postponeను రియాక్ట్ సస్పెన్స్తో అనుసంధానించండి.
స్పష్టమైన కారణాలను అందించండి: రియాక్ట్ అప్డేట్ షెడ్యూలింగ్ను ఆప్టిమైజ్ చేయడంలో సహాయపడటానికి experimental_postponeను కాల్ చేసేటప్పుడు వివరణాత్మక కారణాలను అందించండి.
సమగ్రంగా పరీక్షించండి:experimental_postponeను అమలు చేసిన తర్వాత మీ అప్లికేషన్ను సమగ్రంగా పరీక్షించండి, అది ఊహించిన విధంగా ప్రవర్తిస్తుందో లేదో నిర్ధారించుకోండి.
పనితీరును పర్యవేక్షించండి: ఏవైనా సంభావ్య సమస్యలను గుర్తించడానికి మీ అప్లికేషన్ పనితీరును నిరంతరం పర్యవేక్షించండి.
ప్రపంచవ్యాప్తంగా ఉదాహరణలు
ఒక గ్లోబల్ ఇ-కామర్స్ ప్లాట్ఫారమ్ను ఊహించుకోండి. experimental_postponeను ఉపయోగించి, వారు ఇలా చేయవచ్చు:
ఉత్పత్తి పేజీ లోడింగ్ను ఆప్టిమైజ్ చేయడం (ఆసియా): ఆసియాలోని వినియోగదారు ఒక ఉత్పత్తి పేజీకి నావిగేట్ చేసినప్పుడు, ప్రధాన ఉత్పత్తి సమాచారం (పేరు, ధర, వివరణ) లోడ్ అయ్యే వరకు సంబంధిత ఉత్పత్తుల విభాగాన్ని రెండర్ చేయడాన్ని వారు వాయిదా వేయవచ్చు. ఇది కొనుగోలు నిర్ణయాలకు కీలకమైన ప్రధాన ఉత్పత్తి వివరాలను ప్రదర్శించడానికి ప్రాధాన్యత ఇస్తుంది.
సున్నితమైన కరెన్సీ మార్పిడి (యూరప్): వినియోగదారు వారి కరెన్సీ ప్రాధాన్యతను (ఉదా., EUR నుండి GBPకి) మార్చినప్పుడు, కరెన్సీ మార్పిడి API కాల్ పూర్తయ్యే వరకు మొత్తం పేజీలోని ధరలను అప్డేట్ చేయడాన్ని వారు ఆలస్యం చేయవచ్చు. ఇది ధరలు ఫ్లికర్ అవ్వడాన్ని నివారిస్తుంది మరియు స్థిరత్వాన్ని నిర్ధారిస్తుంది.
షిప్పింగ్ సమాచారానికి ప్రాధాన్యత ఇవ్వడం (ఉత్తర అమెరికా): ఉత్తర అమెరికాలోని వినియోగదారుల కోసం, అంచనా వేసిన షిప్పింగ్ ఖర్చు ప్రదర్శించబడే వరకు కస్టమర్ సమీక్షలను ప్రదర్శించడాన్ని వారు వాయిదా వేయవచ్చు. ఇది కీలకమైన ఖర్చు సమాచారాన్ని ముందుగా అందిస్తుంది.
ముగింపు
experimental_postpone రియాక్ట్ యొక్క టూల్కిట్లో ఒక ఆశాజనకమైన చేరిక, ఇది డెవలపర్లకు అప్లికేషన్ పనితీరును ఆప్టిమైజ్ చేయడానికి మరియు వినియోగదారు అనుభవాన్ని మెరుగుపరచడానికి ఒక శక్తివంతమైన మార్గాన్ని అందిస్తుంది. వ్యూహాత్మకంగా అప్డేట్లను ఆలస్యం చేయడం ద్వారా, మీరు అనవసరమైన రీ-రెండర్లను తగ్గించవచ్చు, గ్రహించిన పనితీరును మెరుగుపరచవచ్చు మరియు మరింత ప్రతిస్పందించే మరియు ఆకర్షణీయమైన అప్లికేషన్లను సృష్టించవచ్చు.
ఇంకా ప్రయోగాత్మక దశలో ఉన్నప్పటికీ, experimental_postpone రియాక్ట్ యొక్క పరిణామంలో ఒక ముఖ్యమైన ముందడుగును సూచిస్తుంది. దాని సామర్థ్యాలు మరియు పరిమితులను అర్థం చేసుకోవడం ద్వారా, ఇది రియాక్ట్ పర్యావరణ వ్యవస్థలో ఒక స్థిరమైన భాగంగా మారినప్పుడు ఈ ఫీచర్ను సమర్థవంతంగా ఉపయోగించుకోవడానికి మీరు సిద్ధంగా ఉండగలరు.
experimental_postponeకు సంబంధించిన ఏవైనా మార్పులు లేదా అప్డేట్ల గురించి తెలుసుకోవడానికి తాజా రియాక్ట్ డాక్యుమెంటేషన్ మరియు కమ్యూనిటీ చర్చలతో అప్డేట్గా ఉండాలని గుర్తుంచుకోండి. ప్రయోగాలు చేయండి, అన్వేషించండి మరియు రియాక్ట్ అభివృద్ధి యొక్క భవిష్యత్తును రూపొందించడంలో సహకరించండి!