ฉันจะแสดงสองสไตล์ด้านล่างและคุณจะต้องเลือกขึ้นอยู่กับว่าตรรกะของส่วนประกอบเกี่ยวข้องกันมากแค่ไหน
รูปแบบที่ 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 - ส่วนประกอบประเภท Utilสามารถสร้างได้เช่นนี้ใน./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"));
}
}
จะใช้แบบไหน?
หากตรรกะค่อนข้างเกี่ยวข้องกัน (ใช้ร่วมกันในแอปเดียวกันเท่านั้น) คุณควรแชร์สถานะระหว่างส่วนประกอบต่างๆ แต่ถ้าตรรกะของคุณสัมพันธ์กันแบบห่าง ๆ (เช่นการใช้คณิตศาสตร์ยูทิลการจัดรูปแบบข้อความ) คุณควรสร้างและนำเข้าฟังก์ชันคลาสยูทิล