Tôi sẽ hiển thị hai kiểu bên dưới và bạn sẽ muốn chọn tùy thuộc vào mức độ logic của các thành phần liên quan đến nhau.
Kiểu 1 - Các thành phần tương đối liên quan có thể được tạo bằng các tham chiếu gọi lại, như thế này, trong ./components/App.js
...
<SomeItem
ref={(instance) => {this.childA = instance}}
/>
<SomeOtherItem
ref={(instance) => {this.childB = instance}}
/>
Và sau đó bạn có thể sử dụng các chức năng được chia sẻ giữa chúng như thế này ...
this.childA.investigateComponent(this.childB);
this.childB.makeNotesOnComponent(this.childA);
Kiểu 2 - Các thành phần kiểu Util có thể được tạo như thế này, trong ./utils/time.js
...
export const getTimeDifference = function (start, end) {
}
Và sau đó chúng có thể được sử dụng như thế này, trong ./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"));
}
}
Sử dụng cái nào?
Nếu logic tương đối liên quan (chúng chỉ được sử dụng cùng nhau trong cùng một ứng dụng), thì bạn nên chia sẻ trạng thái giữa các thành phần. Nhưng nếu logic của bạn có liên quan đến xa (tức là sử dụng toán học, sử dụng định dạng văn bản), thì bạn nên tạo và nhập các hàm lớp sử dụng.