การแทรกข้อมูลลงในแอตทริบิวต์ style จากไฟล์แยกใน React
เราไม่จำเป็นต้องเขียนอ็อบเจ็กต์สไตล์ ในไฟล์คอมโพเนนต์เหมือนในบทเรียนที่ ผ่านมา แต่สามารถสร้างไฟล์แยกสำหรับ อ็อบเจ็กต์สไตล์ของเราและนำเข้า ไปยังคอมโพเนนต์ที่ต้องการได้
เอาล่ะ ลองนำคอมโพเนนต์ของเรา ที่ยังไม่มี CSS สไตล์:
function App() {
return (
<div>
<p>text</p>
<p>text</p>
<p>text</p>
</div>
);
}
มาสร้างไฟล์แยกชื่อ styles.js
ในโฟลเดอร์ src
และเขียนอ็อบเจ็กต์สไตล์ของเราลงไป:
const class1 = {
width: '200px',
border: '2px solid brown',
padding: '10px',
textAlign: 'center',
};
const class2 = {
color: 'orangered',
fontWeight: 'bold',
};
const class3 = {
fontStyle: 'italic',
color: 'brown',
};
const class4 = {
backgroundColor: 'orange',
fontWeight: 'bold',
color: 'white',
};
อย่าลืมที่ด้านล่างของไฟล์ styles.js
ส่งออกอ็อบเจ็กต์ของเราเป็นอ็อบเจ็กต์เดียว
ชื่อ styles:
export const styles = {
class1: class1,
class2: class2,
class3: class3,
class4: class4
};
ตอนนี้ให้นำเข้าอ็อบเจ็กต์ styles
ไปยังคอมโพเนนต์ของเรา:
import { styles } from "./styles";
ตอนนี้เราสามารถนำอ็อบเจ็กต์
CSS สไตล์ที่เราต้องการจากอ็อบเจ็กต์รวม
styles ไปใช้กับแท็กของเราได้ ลองใช้
กับย่อหน้าแรกจากอ็อบเจ็กต์
class2:
<p style={styles.class2}>text</p>
ในทำนองเดียวกัน ให้เพิ่มสไตล์จาก อ็อบเจ็กต์ที่เหลือให้กับแท็กอื่นๆ
ผลลัพธ์ รหัสคอมโพเนนต์จะมี ลักษณะดังนี้:
function App() {
return (
<div style={styles.class1}>
<p style={styles.class2}>text</p>
<p style={styles.class3}>text</p>
<p style={styles.class4}>text</p>
</div>
);
}
นำ React คอมโพเนนต์ที่คุณ
ทำในโจทย์ของบทเรียนที่แล้ว สร้าง
ไฟล์แยก styles.js ซึ่ง
จะมีอ็อบเจ็กต์ CSS สไตล์สำหรับแท็กของคุณ,
ส่งออกพวกมันเป็นอ็อบเจ็กต์เดียว แล้วนำ
สไตล์ไปใช้กับ React คอมโพเนนต์ของคุณ