บทความนี้เป็นส่วนหนึ่งของซีรีส์ Angular + PrimeNG 19 (CSR, non-standalone) เรียบเรียงจากคู่มืออบรมของ Wutthiphon Tassana — Wirabyte CO., LTD. — ตอนที่ 6/10
Prime NG เป็น CSS UI Suite ตัวหนึ่งของ Angular เดิมที Angular พัมนาดดย Google ดังนั้น UI หลักที่ใช้จะเป็น Material ซึ่งคล้ายกับ UI บนมือถือ Android แต่ Prime NG ก็เป็นอีก 1 ทางเลือก เนื่องจากภายในนั้นสามารถเลือก Theme ได้อีกว่าอยากจะใช้ Preset อะไร และแต่ละแบบก็จะมีความแตกต่างกัน รวมถึงมี Component ให้เลือกใช้ได้มากกว่า ทำให้เป็นตัวเลือกที่ดีในการทำโปรเจคขนาดใหญ่
หน้าเว็บ PRIMENG Version 20
โดยวิธีเริ่มให้คลิกที่ Get Started ได้เลยซึ่งก็จะมีแนะนำวิธีการติดตั้ง และ Component ต่าง ๆให้เลือกดู รวมถึงมี Icon และ Layout เพิ่มเติมอีกด้วย โดย Prime NG สามารถใช้ Layout จาก Tailwind หรือ Prime Flex ก็ได้ นอกจากนี้หาจ่ายเงินจะสามารถใช้ Theme Designer ที่ทำให้สามารถ Custom Component เองได้ผ่านหน้าเว็บแล้ว Download ไฟล์เพื่อนำไปใช้กับโปรเจคได้อีกด้วย
ลองเลือกสีต่าง ๆ และ Preset ได้ที่เมนูด้านขวาบน สามารถลองดูผลลัพธ์จากหน้า Component ได้
วิธีการติดตั้ง Prime NG Prime Icon และ Prime Flex ใน Angular 19 (Prime 19)
(ใน LAB มีการติดตั้งให้แล้วเรียบร้อยแล้ว)
ติดตั้ง Package ของ Prime NG
npm install primeng primeflex primeicons @primeuix/themes @primeuix/themes
// กรณีต้องการใช้ ChartJS
npm install chart.js --save
// กรณีต้องการใช้ Editor
npm install quill
ที่ไฟล์ app.module.ts ให้เรียกใช้งาน Theme และ Component ที่ต้องการ
import { definePreset, palette } from '@primeng/themes';
import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
import { providePrimeNG } from 'primeng/config';
import Aura from '@primeuix/themes/<Preset เช่น aura>'; // กำหนด Preset Theme ตรงนี้
const ThemeConfig = definePreset(Aura, {
semantic: {
primary: palette('{<สี เช่น blue> }'), // สีที่ต้องการใช้ดูตัวอย่างจากเว็บ Prime NG
},
});
// Prime NG Component Module เช่น
import { ButtonModule } from 'primeng/button';
…
@NgModule({ declarations: [AppComponent , …] imports: [… , ButtonModule , …] providers: [ … , provideAnimationsAsync, providePrimeNG({
theme: {
preset: ThemeConfig,
options: {
darkModeSelector: '.non-dark-selector', // ปิดการใช้ Dark mode
},
}, … ] })
export class AppModule {}
Note: Compoennt ต่าง ๆ หากมีการแยก Module ย่อยจะต้อง Import ใหม่ในแต่ละ Module แต่ Theme สามารถ Import ที่ App Module ที่เดียวไม่ต้อง Import ใหม่ในแต่ละ Module ย่อยแล้ว
ทดลองเรียกใช้งาน
// เรียกใช้ผ่าน Template
<button pButton label=”Button” icon=”pi pi-check” class=””></button>
// หรือเรียกแบบใช้ Component ตรง ๆ
<p-button label=”Submit” icon=” pi pi-check” styleClass=””></p-button>
ก็จะได้ปุ่มตามรูป
Style class ของปุ่มที่ควรรู้
ขนาดปุ่ม: p-button-sm p-button-lg
สีปุ่ม: p-button-success p-button-warn p-button-danger p-button-secondary
หน้าตาปุ่ม: p-button-rounded p-button-raised p-button-text p-button-outlined
Component อื่น ๆ ที่แนะนำ
AutoComplete
Checkbox
binary = true เป็นการ return ค่าของ checkbox กลับเป็น Boolean (true/false)
DatePicker
Editor (ต้องติดตั้ง quill)
Input Group
InputMask
InputNumber
InputText
KeyFilter
Multiselect
Password
RadioButton
Select (Dropdown)
Textarea
Button
PickList
Table
Timeline
Accordion
Card
Divider
Fieldset
Panel
Tabs
Toolbar
ConfirmDialog
Dialog
Menubar
PanelMenu
Message
Image
Badge
Tag
ProgressSpinner
ProgressBar
Skeleton
MeterGroup
Chip
Prime Icon
Library ของ prime icon ก็จะมี icon มาให้ใช้บางส่วน ข้อดีคือโหลดได้รวดเร็วกว่า Font awesome
Prime Flex (https://primeflex.org)
Library ของ Prime ที่ใช้สำหรับจัดการ Layout โดยที่ใช้บ่อย ๆ ก็จะมี 2 ระบบ
Grid – ใช้ระบบ Grid 12 ช่อง
<div class=”grid”>
<div class=”col-12 md:col-4”></div>
<div class=”col-12 md:col-8”></div>
</div>
Flex
<div class=”flex flex-warp justify-content-center w-full”>
<div></div>
</div>
ให้ศึกษาเพิ่มเติมจาก: https://primeflex.org/ ในส่วน Flexbox และ Grid