คุณรู้ว่าการรับภาษาหรือเฟรมเวิร์กใหม่นั้นเป็นอย่างไร บางครั้งก็มีเอกสารที่ดีที่จะช่วยคุณหาทางผ่านมัน แต่แม้แต่เอกสารที่ดีที่สุดก็ยังไม่ครอบคลุมทุกอย่าง และเมื่อคุณทำงานกับสิ่งใหม่ๆ คุณจะพบปัญหาที่ไม่มีวิธีแก้ไขเป็นลายลักษณ์อักษร
นั่นเป็นวิธีการสำหรับฉันในครั้งแรกที่ฉันสร้างโครงการ React — และ React เป็นหนึ่งในเฟรมเวิร์กที่มีเอกสารที่น่าทึ่ง โดยเฉพาะอย่างยิ่งตอนนี้กับเอกสารรุ่นเบต้า แต่ฉันก็ยังดิ้นรนหาทางผ่าน เป็นเวลานานแล้วที่โปรเจกต์นั้น แต่บทเรียนที่ฉันได้รับจากโปรเจกต์นี้ยังคงสดใหม่อยู่ในใจของฉัน และแม้ว่าจะมีบทช่วยสอน "วิธีการ" ของ React อยู่มากมาย ฉันคิดว่าฉันจะแบ่งปันสิ่งที่ฉันอยากรู้เมื่อฉันใช้มันครั้งแรก
นั่นคือสิ่งที่บทความนี้เป็น - รายการข้อผิดพลาดที่ฉันทำ ฉันหวังว่าสิ่งเหล่านี้จะช่วยให้การเรียนรู้ React ราบรื่นขึ้นสำหรับคุณ
การใช้แอป create-react-app เพื่อเริ่มโครงการ
TL;DR ใช้ Vite หรือ Parcel
สร้างแอป React (CRA) เป็นเครื่องมือที่ช่วยให้คุณตั้งค่าโครงการ React ใหม่ สร้างสภาพแวดล้อมการพัฒนาด้วยตัวเลือกการกำหนดค่าที่ดีที่สุดสำหรับโครงการ React ส่วนใหญ่ ซึ่งหมายความว่าคุณไม่ต้องเสียเวลากำหนดค่าอะไรเอง
ในฐานะผู้เริ่มต้น นี่เป็นวิธีที่ดีในการเริ่มงานของฉัน! ไม่มีการกำหนดค่า! เริ่มเขียนโค้ดได้เลย!
CRA ใช้แพ็คเกจยอดนิยมสองแพ็คเกจเพื่อให้บรรลุเป้าหมายนี้ webpack และ Babel webpack เป็นเว็บบันเดิลที่เพิ่มประสิทธิภาพเนื้อหาทั้งหมดในโครงการของคุณ เช่น JavaScript, CSS และรูปภาพ Babel เป็นเครื่องมือที่ช่วยให้คุณสามารถใช้คุณสมบัติ JavaScript ที่ใหม่กว่า แม้ว่าบางเบราว์เซอร์จะไม่รองรับก็ตาม
ทั้งคู่ดี แต่มีเครื่องมือใหม่ที่สามารถทำงานได้ดีกว่าโดยเฉพาะ ชีวิต และ คอมไพเลอร์เว็บที่รวดเร็ว (ม.ป.ป).
ทางเลือกใหม่ที่ได้รับการปรับปรุงเหล่านี้เร็วกว่าและง่ายกว่าในการกำหนดค่ามากกว่า webpack และ Babel ทำให้ง่ายต่อการปรับการกำหนดค่าซึ่งทำได้ยากในแอป create-react-app โดยไม่ต้องดีดออก
หากต้องการใช้ทั้งสองอย่างเมื่อตั้งค่าโครงการ React ใหม่ คุณต้องแน่ใจว่ามี โหนด ติดตั้งเวอร์ชัน 12 ขึ้นไป แล้วรันคำสั่งต่อไปนี้
npm create vite
คุณจะถูกขอให้เลือกชื่อสำหรับโครงการของคุณ เมื่อคุณทำเสร็จแล้ว ให้เลือก React จากรายการเฟรมเวิร์ก หลังจากนั้นคุณสามารถเลือกอย่างใดอย่างหนึ่ง Javascript + SWC
or Typescript + SWC
จากนั้นคุณจะต้องเปลี่ยนไดเร็กทอรี cd
ในโครงการของคุณและเรียกใช้คำสั่งต่อไปนี้
npm i && npm run dev
สิ่งนี้ควรเรียกใช้เซิร์ฟเวอร์การพัฒนาสำหรับไซต์ของคุณด้วย URL localhost:5173
และมันก็ง่ายเหมือนกัน
defaultProps
สำหรับค่าเริ่มต้น
การใช้ TL; DR ใช้พารามิเตอร์ฟังก์ชันเริ่มต้นแทน
ข้อมูลสามารถส่งผ่านไปยังส่วนประกอบ React ผ่านสิ่งที่เรียกว่า props
. สิ่งเหล่านี้ถูกเพิ่มเข้าไปในคอมโพเนนต์เช่นเดียวกับแอตทริบิวต์ในองค์ประกอบ HTML และสามารถใช้ในคำจำกัดความของคอมโพเนนต์ได้โดยการรับค่าที่เกี่ยวข้องจากออบเจกต์ prop ที่ส่งผ่านเป็นอาร์กิวเมนต์
// App.jsx
export default function App() { return <Card title="Hello" description="world" />
} // Card.jsx
function Card(props) { return ( <div> <h1>{props.title}</h1> <p>{props.description}</p> </div> );
} export default Card;
หากจำเป็นต้องใช้ค่าเริ่มต้นสำหรับ a prop
ที่ defaultProp
สามารถใช้คุณสมบัติ:
// Card.jsx
function Card(props) { // ...
} Card.defaultProps = { title: 'Default title', description: 'Desc',
}; export default Card;
ด้วย JavaScript ที่ทันสมัย เป็นไปได้ที่จะทำลายโครงสร้าง props
วัตถุและกำหนดค่าเริ่มต้นให้กับมันทั้งหมดในอาร์กิวเมนต์ของฟังก์ชัน
// Card.jsx
function Card({title = "Default title", description= "Desc"}) { return ( <div> <h1>{title}</h1> <p>{description}</p> </div> )
} export default Card;
สิ่งนี้เป็นที่นิยมมากกว่าเนื่องจากโค้ดที่เบราว์เซอร์สมัยใหม่สามารถอ่านได้โดยไม่ต้องแปลงเพิ่มเติม
น่าเสียดาย, defaultProps
ต้องการให้เบราว์เซอร์อ่านการแปลงเนื่องจากไม่รองรับ JSX (JavaScript XML) ทันที สิ่งนี้อาจส่งผลต่อประสิทธิภาพของแอปพลิเคชันที่ใช้งานจำนวนมาก defaultProps
.
propTypes
อย่าใช้ TL; DR ใช้ TypeScript
ในการตอบสนอง, the propTypes
คุณสมบัติสามารถใช้เพื่อตรวจสอบว่าส่วนประกอบถูกส่งผ่านประเภทข้อมูลที่ถูกต้องสำหรับอุปกรณ์ประกอบฉากหรือไม่ พวกเขาให้คุณระบุประเภทของข้อมูลที่ควรใช้สำหรับแต่ละพร็อพ เช่น สตริง ตัวเลข ออบเจกต์ ฯลฯ นอกจากนี้ยังช่วยให้คุณระบุว่าจำเป็นต้องใช้พร็อพหรือไม่
ด้วยวิธีนี้ ถ้าคอมโพเนนต์ถูกส่งผ่านข้อมูลผิดประเภท หรือหากไม่ได้จัดเตรียมพร็อพที่จำเป็น React จะส่งข้อผิดพลาดออกมา
// Card.jsx
import { PropTypes } from "prop-types"; function Card(props) { // ...
} Card.propTypes = { title: PropTypes.string.isRequired, description: PropTypes.string,
}; export default Card;
สิ่งที่พิมพ์ด้วยพิมพ์ดีด ให้ระดับของประเภทความปลอดภัยในข้อมูลที่ถูกส่งผ่านไปยังคอมโพเนนต์ แน่นอน propTypes
เป็นความคิดที่ดีเมื่อฉันเริ่มต้น อย่างไรก็ตาม ขณะนี้ TypeScript ได้กลายเป็นวิธีแก้ปัญหาเพื่อความปลอดภัยของประเภท ฉันขอแนะนำให้ใช้มันเหนือสิ่งอื่นใด
// Card.tsx
interface CardProps { title: string, description?: string,
} export default function Card(props: CardProps) { // ...
}
TypeScript เป็นภาษาโปรแกรมที่สร้างจาก JavaScript โดยเพิ่มการตรวจสอบประเภทแบบคงที่ TypeScript จัดเตรียมระบบประเภทที่มีประสิทธิภาพมากขึ้น ซึ่งสามารถจับจุดบกพร่องที่อาจเกิดขึ้นได้มากขึ้นและปรับปรุงประสบการณ์การพัฒนา
การใช้ส่วนประกอบของคลาส
TL; DR: เขียนส่วนประกอบเป็นฟังก์ชัน
ส่วนประกอบของคลาสใน React ถูกสร้างขึ้นโดยใช้คลาส JavaScript พวกเขามีโครงสร้างเชิงวัตถุมากขึ้นและมีคุณสมบัติเพิ่มเติมบางอย่าง เช่น ความสามารถในการใช้ this
วิธีคำหลักและวงจรชีวิต
// Card.jsx
class Card extends React.Component { render() { return ( <div> <h1>{this.props.title}</h1> <p>{this.props.description}</p> </div> ) }
} export default Card;
ฉันชอบเขียนส่วนประกอบด้วยคลาสมากกว่าฟังก์ชัน แต่คลาส JavaScript นั้นยากกว่าสำหรับผู้เริ่มต้นที่จะเข้าใจและ this
อาจทำให้สับสนได้ ฉันขอแนะนำให้เขียนส่วนประกอบเป็นฟังก์ชันแทน:
// Card.jsx
function Card(props) { return ( <div> <h1>{props.title}</h1> <p>{props.description}</p> </div> )
} export default Card;
ส่วนประกอบของฟังก์ชันเป็นเพียงฟังก์ชัน JavaScript ที่ส่งคืน JSX อ่านง่ายกว่ามาก และไม่มีฟีเจอร์เพิ่มเติมเช่น this
คำหลักและ วิธีวงจรชีวิต ซึ่งทำให้มีประสิทธิภาพมากกว่าส่วนประกอบของคลาส
ส่วนประกอบของฟังก์ชันยังมีข้อได้เปรียบในการใช้ตะขอ ตอบสนองตะขอ อนุญาตให้คุณใช้สถานะและคุณลักษณะ React อื่นๆ โดยไม่ต้องเขียนส่วนประกอบของคลาส ทำให้โค้ดของคุณสามารถอ่านได้มากขึ้น บำรุงรักษาได้ และนำมาใช้ซ้ำได้
การนำเข้าการตอบสนองโดยไม่จำเป็น
TL; DR: ไม่จำเป็นต้องทำ เว้นแต่คุณต้องการขอเกี่ยว
เนื่องจาก React 17 เปิดตัวในปี 2020 ตอนนี้คุณไม่จำเป็นต้องนำเข้า React ที่ด้านบนของไฟล์ทุกครั้งที่คุณสร้างส่วนประกอบ
import React from 'react'; // Not needed!
export default function Card() {}
แต่เราต้องทำก่อน React 17 เพราะตัวแปลง JSX (สิ่งที่แปลง JSX เป็น JavaScript ปกติ) ใช้วิธีการที่เรียกว่า React.createElement
ซึ่งจะใช้ได้เฉพาะเมื่อนำเข้า React ตั้งแต่นั้นเป็นต้นมา มีการเปิดตัว Transformer ตัวใหม่ซึ่งสามารถแปลง JSX ได้โดยไม่ต้องใช้ createElement
วิธี
คุณยังคงต้องนำเข้า React เพื่อใช้ hooks เศษและฟังก์ชันหรือคอมโพเนนต์อื่นๆ ที่คุณอาจต้องการจากไลบรารี:
import { useState } from 'react'; export default function Card() { const [count, setCount] = useState(0); // ...
}
นั่นเป็นความผิดพลาดของฉันตั้งแต่เนิ่นๆ!
บางทีคำว่า "ผิดพลาด" อาจเป็นคำที่รุนแรงเกินไป เนื่องจากแนวทางปฏิบัติที่ดีกว่าบางอย่างเกิดขึ้นในภายหลัง ถึงกระนั้น ฉันยังเห็นตัวอย่างมากมายที่วิธีการทำบางอย่างแบบ "เก่า" ยังคงถูกใช้อย่างแข็งขันในโปรเจกต์และบทช่วยสอนอื่นๆ
พูดตามตรง ฉันอาจทำผิดพลาดมากกว่าห้าครั้งเมื่อเริ่มต้นใช้งาน เมื่อใดก็ตามที่คุณเอื้อมมือไปหาเครื่องมือใหม่ มันจะเป็นเหมือนเส้นทางแห่งการเรียนรู้เพื่อใช้งานมันอย่างมีประสิทธิภาพ แทนที่จะต้องพลิกสวิตช์ แต่นี่คือสิ่งที่ฉันยังคงพกติดตัวไปอีกหลายปีต่อมา!
หากคุณใช้ React มาระยะหนึ่ง คุณต้องการรู้อะไรก่อนที่จะเริ่มใช้งานบ้าง จะเป็นการดีหากได้รับคอลเลคชันเพื่อช่วยให้ผู้อื่นหลีกเลี่ยงปัญหาเดียวกัน
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- เพลโตบล็อคเชน Web3 Metaverse ข่าวกรอง ขยายความรู้. เข้าถึงได้ที่นี่.
- ที่มา: https://css-tricks.com/5-mistakes-starting-react/
- :เป็น
- $ ขึ้น
- 1
- 11
- 2020
- 7
- 8
- 9
- 98
- a
- ความสามารถ
- เกี่ยวกับเรา
- อย่างแน่นอน
- บรรลุ
- อย่างกระตือรือร้น
- ที่เพิ่ม
- เพิ่มเติม
- ความได้เปรียบ
- มีผลต่อ
- หลังจาก
- ทั้งหมด
- ช่วยให้
- ทางเลือก
- และ
- app
- การใช้งาน
- เป็น
- อาร์กิวเมนต์
- บทความ
- AS
- สินทรัพย์
- At
- แอตทริบิวต์
- ที่จอแจอึกทึก
- กลับ
- BE
- เพราะ
- กลายเป็น
- ก่อน
- มือใหม่
- เริ่มต้น
- กำลัง
- ที่ดีที่สุด
- เบต้า
- ดีกว่า
- ขอบเขต
- กล่อง
- เบราว์เซอร์
- เบราว์เซอร์
- เป็นโรคจิต
- สร้าง
- by
- ที่เรียกว่า
- CAN
- สามารถรับ
- บัตร
- พกพา
- จับ
- เปลี่ยนแปลง
- ตรวจสอบ
- ชั้น
- ชั้นเรียน
- รหัส
- ชุด
- ส่วนประกอบ
- ส่วนประกอบ
- องค์ประกอบ
- ทำให้เกิดความสับสน
- ได้
- หน้าปก
- CRA
- สร้าง
- ที่สร้างขึ้น
- สร้าง
- CSS
- ข้อมูล
- ค่าเริ่มต้น
- ลักษณะ
- dev
- พัฒนาการ
- ยาก
- เอกสาร
- ไม่
- การทำ
- Dont
- แต่ละ
- ก่อน
- ง่ายดาย
- มีประสิทธิภาพ
- ทั้ง
- ธาตุ
- สิ่งแวดล้อม
- ความผิดพลาด
- โดยเฉพาะอย่างยิ่ง
- ฯลฯ
- แม้
- เคย
- ทุกอย่าง
- ประสบการณ์
- ส่งออก
- พิเศษ
- เร็วขึ้น
- คุณสมบัติ
- สองสาม
- เนื้อไม่มีมัน
- หา
- ชื่อจริง
- ครั้งแรก
- ดังต่อไปนี้
- สำหรับ
- กรอบ
- กรอบ
- สด
- ราคาเริ่มต้นที่
- ฟังก์ชัน
- ฟังก์ชั่น
- ได้รับ
- ได้รับ
- ไป
- ดี
- ยิ่งใหญ่
- มี
- ช่วย
- จะช่วยให้
- สูงกว่า
- อย่างสูง
- ตะขอ
- ความหวัง
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- อย่างไรก็ตาม
- HTML
- HTTPS
- i
- ความคิด
- ภาพ
- นำเข้า
- การนำเข้า
- การปรับปรุง
- in
- การติดตั้ง
- แทน
- อินเตอร์เฟซ
- IT
- ITS
- JavaScript
- การสัมภาษณ์
- การเดินทาง
- ทราบ
- ภาษา
- การเรียนรู้
- บทเรียน
- ชั้น
- ห้องสมุด
- วงจรชีวิต
- กดไลก์
- รายการ
- Lot
- ทำ
- บำรุงรักษาได้
- ทำ
- ทำให้
- การทำ
- วิธี
- วิธี
- วิธีการ
- อาจ
- ใจ
- ความผิดพลาด
- ทันสมัย
- ข้อมูลเพิ่มเติม
- มากที่สุด
- ชื่อ
- จำเป็นต้อง
- ใหม่
- จำนวน
- วัตถุ
- of
- on
- ONE
- เพิ่มประสิทธิภาพ
- Options
- อื่นๆ
- ผลิตภัณฑ์อื่นๆ
- แพคเกจ
- พารามิเตอร์
- ผ่าน
- การปฏิบัติ
- เลือก
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- ความอุดมสมบูรณ์
- ยอดนิยม
- เป็นไปได้
- ที่มีศักยภาพ
- ที่อาจเกิดขึ้น
- ที่มีประสิทธิภาพ
- การปฏิบัติ
- ชอบ
- อาจ
- ปัญหา
- การเขียนโปรแกรม
- โครงการ
- โครงการ
- คุณสมบัติ
- ให้
- ให้
- ค่อนข้าง
- มาถึง
- เกิดปฏิกิริยา
- อ่าน
- แนะนำ
- ปกติ
- ปล่อย
- การเผยแพร่
- ตรงประเด็น
- โดดเด่น
- ต้องการ
- จำเป็นต้องใช้
- กลับ
- นำมาใช้ใหม่
- วิ่ง
- ความปลอดภัย
- เดียวกัน
- ดูเหมือน
- ชุด
- การตั้งค่า
- Share
- น่า
- ง่าย
- ง่ายดาย
- ตั้งแต่
- เว็บไซต์
- เรียบเนียน
- So
- ทางออก
- บาง
- บางสิ่งบางอย่าง
- เฉพาะ
- ใช้จ่าย
- เริ่มต้น
- ข้อความที่เริ่ม
- ที่เริ่มต้น
- สถานะ
- ยังคง
- โครงสร้าง
- การต่อสู้
- อย่างเช่น
- สนับสนุน
- ที่สนับสนุน
- สวิตซ์
- ระบบ
- การ
- สถานีปลายทาง
- ที่
- พื้นที่
- พวกเขา
- ล้อยางขัดเหล่านี้ติดตั้งบนแกน XNUMX (มม.) ผลิตภัณฑ์นี้ถูกผลิตในหลายรูปทรง และหลากหลายเบอร์ความแน่นหนาของปริมาณอนุภาคขัดของมัน จะทำให้ท่านได้รับประสิทธิภาพสูงในการขัดและการใช้งานที่ยาวนาน
- สิ่ง
- สิ่ง
- คิดว่า
- ตลอด
- เวลา
- ชื่อหนังสือ
- ไปยัง
- เกินไป
- เครื่องมือ
- เครื่องมือ
- ด้านบน
- แปลง
- การแปลง
- จริง
- บทเรียน
- ประเภท
- เข้าใจ
- URL
- ใช้
- ความคุ้มค่า
- ความคุ้มค่า
- รุ่น
- ทาง..
- เว็บ
- webpack
- ดี
- อะไร
- ที่
- ในขณะที่
- จะ
- กับ
- ไม่มี
- คำ
- งาน
- โลก
- จะ
- เขียน
- การเขียน
- เขียน
- ผิด
- XML
- ปี
- คุณ
- ของคุณ
- ด้วยตัวคุณเอง
- ลมทะเล