Rumah >hujung hadapan web >tutorial js >Lebih Sedikit Fail, Lebih Banyak Baris lwn. Lebih Banyak Fail, Lebih Sedikit Baris Kod
Ah, perbahasan pembangun klasik: **"Lebih sedikit fail dengan lebih banyak baris" lwn. "Lebih banyak fail dengan lebih sedikit baris." Ia seperti memilih topping piza—semua orang mempunyai pilihan mereka dan tiada siapa yang pernah berpuas hati sepenuhnya.
Apabila mengatur kod untuk permintaan tarik (PR), sesetengah orang lebih suka kesederhanaan untuk menyimpan sesuatu di satu tempat, manakala yang lain memilih untuk memecahkannya menjadi fail yang lebih kecil dan terfokus.
Akhirnya, ini bukan hanya tentang anda—ia tentang menyelamatkan masa depan-anda dan pasukan anda daripada menguraikan pangkalan kod yang tidak kemas kemudian.
Mari kita mendalami senario praktikal. Bayangkan pembangun ditugaskan untuk memaparkan senarai widget pada halaman papan pemuka. Berikut ialah pelaksanaan awal:
// Dashboard.js export default function Dashboard() { const widgets = getWidgets(); // Handles widget deletion const handleDelete = (id) => {}; // Handles widget title update const handleUpdate = (id, newTitle) => {}; return ( <div> <h1>Dashboard</h1> <div className="widget-container"> {widgets.map((widget) => ( <div className="widget"> <h2>{widget.title}</h2> <p>{widget.description}</p> <span onClick={handleDelete}>?️</span> <span onClick={handleUpdate}>✎</span> </div> ))} </div> </div> ); }
Semasa semakan, seseorang mencadangkan untuk memisahkan logik untuk memaparkan widget individu ke dalam komponen mereka sendiri. Pembangun memfaktorkan semula kod seperti berikut:
// Dashboard.js export default function Dashboard() { const widgets = getWidgets(); // Handles widget deletion const handleDelete = (id) => {}; // Handles widget title update const handleUpdate = (id, newTitle) => {}; return ( <div> <h1>Dashboard</h1> <div className="widget-container"> {widgets.map((widget) => ( <Widget key={widget.id} widget={widget} onDelete={handleDelete} onUpdate={handleUpdate} /> ))} </div> </div> ); } // Widget component for individual widget function Widget({ widget, onDelete, onUpdate }) { return ( <div className="widget"> <h2>{widget.title}</h2> <p>{widget.description}</p> <button onClick={() => onDelete(widget.id)}>?️</button> <button onClick={() => onUpdate(widget.id, "New Title")}>✏️</button> </div> ); } // Can be even further moved to a separate file // Widget.js export default function Widget({ widget, onDelete, onUpdate }) { return ( <div className="widget"> <h2>{widget.title}</h2> <p>{widget.description}</p> <button onClick={() => onDelete(widget.id)}>?️</button> <button onClick={() => onUpdate(widget.id, "New Title")}>✏️</button> </div> ); }
Bukankah pelaksanaan awal kelihatan lebih mudah dan lebih mudah, terutamanya apabila logik tambahan—seperti pengendalian analitik—berkait rapat dengan widget, yang membawa kepada peningkatan prop dan penukaran konteks? ? Ini menimbulkan persoalan penting: pendekatan manakah yang harus diambil oleh komponen Papan Pemuka? Sekiranya ia mengekalkan pelaksanaan sebaris, mengguna pakai struktur pemfaktoran semula, atau memilih pendekatan hibrid? ?
Untuk contoh Papan Pemuka ini, pilihan anda bergantung pada skala projek dan peranan komponen yang dimaksudkan. Oleh kerana ini adalah contoh kecil di mana Widget tidak akan digunakan semula, satu fail berfungsi dengan baik:
// Dashboard.js export default function Dashboard() { const widgets = getWidgets(); // Handles widget deletion const handleDelete = (id) => {}; // Handles widget title update const handleUpdate = (id, newTitle) => {}; return ( <div> <h1>Dashboard</h1> <div className="widget-container"> {widgets.map((widget) => ( <div className="widget"> <h2>{widget.title}</h2> <p>{widget.description}</p> <span onClick={handleDelete}>?️</span> <span onClick={handleUpdate}>✎</span> </div> ))} </div> </div> ); }
Untuk projek yang lebih besar atau semakin berkembang, memisahkan Widget akan memberi manfaat dari segi fleksibiliti dan kebolehselenggaraan
Mengimbangi "lebih banyak baris dalam satu fail" berbanding "lebih banyak fail dengan lebih sedikit baris" bergantung pada skop projek anda, saiz pasukan dan trajektori pertumbuhan. Pertimbangkan perkara berikut semasa membuat keputusan:
Jika seseorang mencadangkan untuk memindahkan komponen ke fail berasingan semasa semakan PR, semak semula sama ada faedah sejajar dengan pertimbangan ini.
Atas ialah kandungan terperinci Lebih Sedikit Fail, Lebih Banyak Baris lwn. Lebih Banyak Fail, Lebih Sedikit Baris Kod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!