การเริ่มต้นศึกษาสิ่งใหม่ ๆ มันยากเสมอ Angular ก็เช่นกัน
ถ้าไปฟังจากนักพัฒนาที่ใช้งานแล้ว พบว่า
มันมีความซับซ้อนมาก ๆ
แลดูว่าจะยากต่อการใช้งาน
ซึ่งมันก็ไม่ผิดแต่อย่างใด
ดังนั้นจะขอแนะนำการเริ่มต้นศึกษา Angular ไว้นิดหน่อย
รวมทั้งความรู้พื้นฐานไว้นิดหน่อย
น่าจะเป็นประโยชน์บ้างเล็กน้อย
เริ่มด้วยการดู VDO ที่น่าสนเกี่ยวกับ Angular ซึ่งมีเพียบบน Youtube
ทำให้เราเข้าใจมากขึ้น เพราะว่า บางทีการอ่านมันเข้าใจยาก ตัวอย่างเช่น https://www.youtube.com/watch?v=LS3aewTkfHI https://www.youtube.com/watch?v=wZ_5des_6_cหลังจากนั้นลองทำตาม VDO นั่นคือลงมือสร้างระบบและเขียน code (Heros App)
ซึ่งสามารถดู code ตัวอย่างจาก Official website ของ Angular ได้เลย จากตัวอย่างต่าง ๆ จะพบว่า มีสิ่งที่ต้องเรียนรู้เพียบเลย เช่น- วิธีการสร้าง Angular project ?
- Webpack ?
- TypeScript ?
- ES6 ?
ขั้นตอนที่ 1 สร้าง Angular project ด้วย Angular CLI
ถ้าสร้างเองน่าจะรอดยาก ดังนั้นทางทีมพัฒนาจึงทำการสร้าง Angular CLI มาให้ เพื่อให้ง่ายต่อการสร้าง project เพื่อให้ง่ายต่อการสร้างส่วนต่าง ๆ เช่น component, router, service และ pipe เพื่อ start server เพื่อทดสอบ และ ตรวจสอบ code ด้วย lint ทั้งหมดนี้ทำงานบน command line ทำการติดตั้ง Angular CLI ด้วยคำสั่ง (ต้องติดตั้ง NPM ก่อนนะ) [code] $npm install -g @angular/cli [/code] จากนั้นทำการสร้าง project ด้วยคำสั่ง [code] $ng new ชื่อ project [/code]ใช้เวลาการสร้างและติดตั้ง library ต่าง ๆ นานพอสมควร !![gist id="ba9f24823e9d3821acc5fe4b3838307b" file="1.txt"] ผลที่ได้คือ สร้าง folder ใหม่ขึ้นมาเป็นชื่อ project นั่นเอง เมื่อเข้าไปดูใน folder จะมีโครงสร้างดังนี้ [gist id="ba9f24823e9d3821acc5fe4b3838307b" file="2.txt"] คำอธิบาย มันเยอะมาก ๆ !! โดย folder ที่สำคัญมาก ๆ คือ src เป็นที่จัดเก็บ code ทั้งหมดของ project จากนั้นทำการ start server ด้วยคำสั่ง [code] $ng serve [/code] จะทำการ start server ที่ port 4200 ดังนั้นเข้าไปดูผลการทำงานได้ใน browser ดังนี้
ขั้นตอนที่ 2 มาศึกษาโครงสร้าง project ที่สร้างกันหน่อย
เริ่มอ่านจากไฟล์ index.html ซึ่งจะมี tag ที่งงมาก ๆ คือ app-root !! มันคืออะไร มาจากไหน คำถามเต็มไปหมด [gist id="ba9f24823e9d3821acc5fe4b3838307b" file="index.html"] มาหาคำตอบกัน โดยเริ่มจากเข้าไปดูไฟล์ชื่อว่า app.module.ts ใน folder app [gist id="ba9f24823e9d3821acc5fe4b3838307b" file="app.module.ts"] ให้สังเกตุว่าในส่วนของ bootstrap จะมีค่าคือ AppComponent bootstrap ใช้กำหนดว่า component ที่เป็นตัวหลักในการทำงาน โดยจะอ้างอิงไปยังไฟล์ app.component.ts ส่วนพวกไฟล์ css และ html หรือ template ก็จะชื่อเดียวกัน (เป็น convention พื้นฐาน แต่เปลี่ยนได้นะ) เมื่อเปิดไฟล์ app.component.ts จะเห็น selector ชื่อว่า app-root เห็นการกำหนด templateUrl และ styleUrls ไปยังไฟล์ต่าง ๆ น่าจะทำให้เข้าใจมากยิ่งขึ้น แน่นอนว่า ถ้าไม่ชอบก็แก้ไขกันได้เลย [gist id="ba9f24823e9d3821acc5fe4b3838307b" file="app.component.ts"]ปล. เมื่อแก้ไขและบันทึกแล้ว จะทำการ compile และ reload หน้าให้แบบอัตโนมัติด้วยนะ มันสะดวกสบายมาก ๆ
ขั้นตอนที่ 3 เพื่อความเข้าใจมากขึ้น มาลองสร้างระบบขำ ๆ นิดหน่อย
มีเป้าหมายเพื่อสร้าง component และการใช้งาน routing เพื่อจัดการ URI สวย ๆ ของ projectสิ่งที่ต้องการคือ ในหน้าหลักของระบบจะมี menu ไปสองหน้าคือ Welcome และ Ippoแสดงดังนี้ ดังนั้นสิ่งที่ต้องทำก่อนเลยคือ สร้าง component ทั้งสองขึ้นมาก่อนผ่าน Angular CLI ซึ่งจะทำการสร้าง folder ย่อยขึ้นมาใน folder app ตามชื่อของ component ดังนี้ [gist id="ba9f24823e9d3821acc5fe4b3838307b" file="create_component.txt"] ต่อจากนี้ก็ไปเขียน code ในแต่ละ component ตามที่เราต้องการ ดูเพิ่มเติมได้จาก Github :: Up1 :: Angular Ippo สิ่งที่ angular CLI ทำให้อีกคือ การเพิ่ม import component ในไฟล์ app.module.ts ให้ด้วย [gist id="ba9f24823e9d3821acc5fe4b3838307b" file="app.module_v2.ts"] เมื่อทุกอย่างเรียบร้อยมาทำการสร้าง Routing สำหรับ URI ไปยัง component ต่าง ๆ กันดีกว่า เพื่อสร้าง link ของแต่ละ menu จากหน้าหลัก โดยสิ่งที่ต้องการคือ
- /welcome สำหรับหน้า link Welcome และ ให้เป็น default page ของระบบ ถ้าไม่เจอ URI ใด ๆ ก็มาหน้านี้
- /ippo สำหรับแสดงหน้า link Ippo
มาถึงตรงจะนี้แล้วจะอ่านกันไปทำไม ลงมือทำเถอะนะ ยังมีเรื่องต่าง ๆ ให้ศึกษาอีกมากมายขอให้สนุกกับการ coding ครับ