मैं नीचे दो शैलियों को दिखाऊंगा, और आप यह चुनना चाहते हैं कि घटकों का तर्क एक-दूसरे से कितना संबंधित है।
स्टाइल 1 - अपेक्षाकृत संबंधित घटकों को कॉलबैक संदर्भों के साथ बनाया जा सकता है , जैसे ./components/App.js
...
<SomeItem
ref={(instance) => {this.childA = instance}}
/>
<SomeOtherItem
ref={(instance) => {this.childB = instance}}
/>
और फिर आप उनके बीच इस तरह साझा कार्यों का उपयोग कर सकते हैं ...
this.childA.investigateComponent(this.childB);
this.childB.makeNotesOnComponent(this.childA);
स्टाइल 2 - बर्तन-प्रकार के घटकों को इस तरह बनाया जा सकता है , ./utils/time.js
...
export const getTimeDifference = function (start, end) {
}
और फिर उन्हें इस तरह से इस्तेमाल किया जा सकता है , ./components/App.js
...
import React from 'react';
import {getTimeDifference} from './utils/time.js';
export default class App extends React.Component {
someFunction() {
console.log(getTimeDifference("19:00:00", "20:00:00"));
}
}
किसका उपयोग करें?
यदि तर्क अपेक्षाकृत संबंधित है (वे केवल एक ही ऐप में एक साथ उपयोग किए जाते हैं), तो आपको घटकों के बीच राज्यों को साझा करना चाहिए। लेकिन अगर आपका तर्क दूर से संबंधित है (जैसे, गणित का उपयोग, पाठ-स्वरूपण उपयोग), तो आपको उपयोग करना चाहिए और उपयोग करना चाहिए कक्षा के कार्य।