2010-08-07 12 views
16

बाद के बाद और लेआउट, घटनाओं के बाद और प्रस्तुत करने जैसी घटनाओं के बीच क्या अंतर है? मैं पहले के बीच और बाद के बीच के अंतर को समझता हूं - लेकिन लेआउट घटना कैसे भिन्न होती है?बाद में लेआउट बनाम लेआउट, रेंडर बनाम प्रस्तुत करने के बाद, ExtJS में?

उत्तर

26

नोट: केवल Ext 3.x पर लागू होता है। इसका उत्तर 2010 में दिया गया था।

कोई 'लेआउट' ईवेंट नहीं है, केवल afterLayout है। दस्तावेज़ों के बाद, बाद में "आग लगती है जब इस कंटेनर में घटकों को संबंधित लेआउट मैनेजर द्वारा व्यवस्थित किया जाता है" जो कि बहुत आत्म-स्पष्टीकरणपूर्ण है। afterLayout केवल कंटेनर उप-वर्गों द्वारा निकाल दिया जाता है जो बाल घटकों को बिछाने के लिए जिम्मेदार होते हैं।

एक तरफ, सभी घटक उप-वर्ग (कंटेनर समेत) render और afterRender ईवेंट आग लगाते हैं। मूल अंतर यह है कि afterRender बाद में आग लगती है। render डीओएम मार्कअप रेंडरिंग समाप्त होने के बाद आग लगती है, लेकिन प्रतिपादन प्रक्रिया के दौरान अन्य चीजें जो हो सकती हैं (जैसे छुपाएं, अक्षम करना, राज्य बहाली इत्यादि)। afterRender यह सब पूरा होने के बाद बहुत ही आखिरी घटना के रूप में आग लगती है। इसे पूरी तरह से समझने के लिए आपको Ext.Component.render() विधि के स्रोत को देखना चाहिए, जो चरण-दर-चरण दिखाता है कि प्रतिपादन प्रक्रिया कैसे काम करती है और जब इन घटनाओं को निकाल दिया जाता है।

संबंधित मुद्दे