Saya akan menunjukkan dua gaya di bawah ini, dan Anda akan ingin memilih tergantung pada seberapa banyak logika komponen berhubungan satu sama lain.
Gaya 1 - Komponen yang relatif terkait dapat dibuat dengan referensi callback, seperti ini, di ./components/App.js
...
<SomeItem
ref={(instance) => {this.childA = instance}}
/>
<SomeOtherItem
ref={(instance) => {this.childB = instance}}
/>
Dan kemudian Anda dapat menggunakan fungsi bersama di antara mereka seperti ini ...
this.childA.investigateComponent(this.childB);
this.childB.makeNotesOnComponent(this.childA);
Gaya 2 - Komponen tipe utilitas dapat dibuat seperti ini, di ./utils/time.js
...
export const getTimeDifference = function (start, end) {
}
Dan kemudian mereka bisa digunakan seperti ini, di ./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"));
}
}
Yang harus digunakan?
Jika logikanya relatif terkait (hanya digunakan bersama dalam aplikasi yang sama), Anda harus berbagi status antar komponen. Tetapi jika logika Anda berhubungan jauh (mis., Math util, text-formatting util), maka Anda harus membuat dan mengimpor fungsi kelas util.