SlideShare a Scribd company logo
NEXT.JS WEB
DEVELOPMENT
Babel Coder
https://www.babelcoder.com
COMPONENTS
Babel Coder
https://www.babelcoder.com
Babel Coder
Babel Coder
https://www.babelcoder.com
Page
COMPONENTS
Header ProductList
ProductItem ProductItem
Babel Coder
Babel Coder
https://www.babelcoder.com
COMPONENTS
Product 1
Product 2
Babel Coder
Babel Coder
https://www.babelcoder.com
JSX / TSX
Syntax āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāđ€āļĢāļĩāļĒāļāļ§āđˆāļē JSX / TSX āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļāļēāļĢāļĢāļ§āļĄāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļĢāļđāļ›āđāļšāļšāļ‚āļ­āļ‡ JavaScript āđāļĨāļ° XML āļ”āļąāļ‡āļ™āļąāđ‰āļ™
Syntax āļ—āļĩāđˆāđ€āļ‚āļĩāļĒāļ™āļ•āđ‰āļ­āļ‡āļ–āļđāļāļ•āđ‰āļ­āļ‡āļ—āļąāđ‰āļ‡āļŠāđˆāļ§āļ™āļ‚āļ­āļ‡ JavaScript āđāļĨāļ° XML
āļāļĢāļ“āļĩāļĄāļĩāļŦāļĨāļēāļĒāđāļ—āđ‡āļāđƒāļ™āļĢāļ°āļ”āļąāļšāđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļ•āđ‰āļ­āļ‡āļĄāļĩ Parant Tag
āļ•āđ‰āļ­āļ‡āļĄāļĩāđāļ—āđ‡āļāļ›āļīāļ”āđ€āļŠāļĄāļ­āļŦāļĢāļ·āļ­ self closed tag āđ€āļŠāđˆāļ™ <br />
āđƒāļŠāđ‰ className āđāļ—āļ™ class āđ€āļžāļĢāļēāļ° class āđ€āļ›āđ‡āļ™āļ„āļĩāļĒāđ€āļ§āļīāļĢāđŒāļ”
āđƒāļ™ JavaScript
āđƒāļŠāđ‰ interpolation āđƒāļ™āđāļ—āđ‡āļ
Babel Coder
Babel Coder
https://www.babelcoder.com
COMPONENTS
Babel Coder
Babel Coder
https://www.babelcoder.com
COMPONENTS
Babel Coder
Babel Coder
https://www.babelcoder.com
COMPONENTS
Babel Coder
Babel Coder
https://www.babelcoder.com
COMPONENTS
Babel Coder
Babel Coder
https://www.babelcoder.com
COMPONENTS
āđƒāļŠāđ‰āļāļēāļĢāļāļĢāļ°āļˆāļēāļĒāđāļ•āđˆāļĨāļ° Property
Babel Coder
Babel Coder
https://www.babelcoder.com
COMPONENTS
Each child in a list should have a unique “key” prop
Babel Coder
Babel Coder
https://www.babelcoder.com
A
RECONCILIATION
B
C
D
A
B
C
D
E
Old VDom New VDom
A
B
C
D
E
A
B
C
D
New Dom Old Dom
Babel Coder
Babel Coder
https://www.babelcoder.com
A
RECONCILIATION
B
C
D
A
B
C
D
E
Old VDom New VDom
A
B
C
D
E A
B
C
D
New Dom Old Dom
Babel Coder
Babel Coder
https://www.babelcoder.com
A
B
C
D
A
B
C
D
E
A
B
C
D
E A
B
C
D
x1g
RECONCILIATION
Old VDom New VDom New Dom Old Dom
bd1
yyr
x64
x1g
bd1
yyr
x64
m1
Babel Coder
Babel Coder
https://www.babelcoder.com
COMPONENTS
Babel Coder
Babel Coder
https://www.babelcoder.com
FRAGMENT
āļāļĢāļ“āļĩāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļĄāļĩ Parent Tag āđ€āļžāļĩāļĒāļ‡āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ–āļđāļāļ•āđ‰āļ­āļ‡āļ•āļēāļĄāđ„āļ§āļĒāļēāļāļĢāļ“āđŒāļ‚āļ­āļ‡ JSX āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰ Fragment āđāļ—āļ™āđ„āļ”āđ‰
Babel Coder
Babel Coder
https://www.babelcoder.com
CHILDREN
APP ROUTER
Babel Coder
https://www.babelcoder.com
Babel Coder
Babel Coder
https://www.babelcoder.com
DIRECTORY
app
next.config.mjs
globals.css
layout.tsx
page.tsx
āđ„āļŸāļĨāđŒāļ•āļąāđ‰āļ‡āļ„āđˆāļē global CSS
āđ„āļŸāļĨāđŒāļ•āļąāđ‰āļ‡āļ„āđˆāļēāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ Next
āđ„āļŸāļĨāđŒāļ•āļąāđ‰āļ‡āļ„āđˆāļē Layout āļŦāļĨāļąāļ
āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļŠāļģāļŦāļĢāļąāļš /
$ pnpm create next-app@latest
√ What is your project named? ... ui
√ Would you like to use TypeScript? ... No / Yes
√ Would you like to use ESLint? ... No / Yes
√ Would you like to use Tailwind CSS? ... No / Yes
√ Would you like to use `src/` directory? ... No / Yes
√ Would you like to use App Router? (recommended) ... No / Yes
√ Would you like to customize the default import alias (@/*)? ... No / Yes
Babel Coder
Babel Coder
https://www.babelcoder.com
PATHS
app
globals.css
layout.tsx
page.tsx
āđ„āļŸāļĨāđŒāļ•āļąāđ‰āļ‡āļ„āđˆāļē global CSS
āđ„āļŸāļĨāđŒāļ•āļąāđ‰āļ‡āļ„āđˆāļē Layout āļŦāļĨāļąāļ
āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļŠāļģāļŦāļĢāļąāļš /
products
page.tsx
[id]
page.tsx
layout.tsx
āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļŠāļģāļŦāļĢāļąāļš /products
āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļŠāļģāļŦāļĢāļąāļš /products/:id āđ€āļŠāđˆāļ™ /products/1
Babel Coder
Babel Coder
https://www.babelcoder.com
LAYOUT
app
globals.css
layout.tsx
page.tsx
products
page.tsx
[id]
page.tsx
layout.tsx
Babel Coder
Babel Coder
https://www.babelcoder.com
page.tsx
PARAMS
app
globals.css
layout.tsx
page.tsx
products
page.tsx
[id]
layout.tsx
Babel Coder
Babel Coder
https://www.babelcoder.com
LINK
Babel Coder
Babel Coder
https://www.babelcoder.com
REACT SERVER COMPONENTS
Compile
āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļŠāļģāļŦāļĢāļąāļšāļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāđƒāļ™āđ‚āļŸāļĨāđ€āļ”āļ­āļĢāđŒ app āļ„āļ·āļ­ React Server Component (RSC)
Babel Coder
Babel Coder
https://www.babelcoder.com
CLIENT COMPONENTS
Compile
Client Components āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āđ€āļ›āđ‡āļ™ Async Functions āđ„āļ”āđ‰
Babel Coder
Babel Coder
https://www.babelcoder.com
ROUTE GROUPS
page.tsx
app
admin
page.tsx
articles
layout.tsx
page.tsx
users
page.tsx
(site)
page.tsx
articles
layout.tsx
page.tsx
users
layout.tsx
āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļŠāļģāļŦāļĢāļąāļš /articles
āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļŠāļģāļŦāļĢāļąāļš /users
āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļŠāļģāļŦāļĢāļąāļš /admin/articles
āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļŠāļģāļŦāļĢāļąāļš /admin/users
Layout āļŠāļģāļŦāļĢāļąāļš admin
Layout āļŠāļģāļŦāļĢāļąāļš (site)
Root Layout āļŠāļģāļŦāļĢāļąāļš (site) āđāļĨāļ° admin
Babel Coder
Babel Coder
https://www.babelcoder.com
20%
20%
20%
20%
20%
Latest Users
Latest Products
@users
@products
PARALLEL ROUTES
page.tsx
app
admin
page.tsx
layout.tsx
page.tsx
Babel Coder
Babel Coder
https://www.babelcoder.com
INTERCEPTING ROUTES
All Products Product 1
<Link href=”/products/1">
Product 1
</Link>
/products /products/:id
Babel Coder
Babel Coder
https://www.babelcoder.com
INTERCEPTING ROUTES
All Products
All Products
<Link href=”/products/1">
Product 1
</Link>
/products /products/:id
Product 1
Babel Coder
Babel Coder
https://www.babelcoder.com
All Products
Product 1
INTERCEPTING ROUTES
[id]
page.tsx
app
products
page.tsx
(..)[id]
page.tsx
Babel Coder
Babel Coder
https://www.babelcoder.com
Login
page.tsx
sign-in
page.tsx
Login
Email
Password
Login
INTERCEPTING ROUTES
app
products
page.tsx
(..)auth
sign-in
articles
page.tsx
(..)auth
auth
sign-in
page.tsx
Login
Babel Coder
Babel Coder
https://www.babelcoder.com
INTERCEPTING ROUTES
app
products
page.tsx
articles
page.tsx
auth
sign-in
page.tsx
@auth
(.)auth
sign-in
page.tsx
layout.tsx
STATE AND
LIFECYCLE
Babel Coder
https://www.babelcoder.com
Babel Coder
Babel Coder
https://www.babelcoder.com
STATE
useState āđƒāļŠāđ‰āđ„āļ”āđ‰āđ€āļ‰āļžāļēāļ°āļšāļ™ Client Components
Babel Coder
Babel Coder
https://www.babelcoder.com
Mounted
LIFE CYCLE
Clean Up Updated
āļŠāļ–āļēāļ™āļ°āļ—āļĩāđˆ Client Components
āđāļŠāļ”āļ‡āļœāļĨāļšāļ™ DOM āđāļĨāđ‰āļ§
āļŠāļ–āļēāļ™āļ°āļ—āļĩāđˆ Client Components
āļ­āļąāļžāđ€āļ”āļ—āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļšāļ™ DOM āđāļĨāđ‰āļ§
āđ€āļĄāļ·āđˆāļ­ state āļŦāļĢāļ·āļ­ props āļ—āļĩāđˆāļŠāļ™āđƒāļˆāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ„āđˆāļē āļŦāļĢāļ·āļ­āđ€āļĄāļ·āđˆāļ­
āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļāļģāļĨāļąāļ‡āļˆāļ°āļŠāļīāđ‰āļ™āļŠāļļāļ”āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļˆāļ°āļ—āļģāļāļēāļĢ
āđ€āļĢāļĩāļĒāļ clean up function
āļāļĢāļ“āļĩāļ—āļĩāđˆāļĄāļĩāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļ„āđˆāļē state āļŦāļĢāļ·āļ­ props
āļ—āļĩāđˆāļŠāļ™āđƒāļˆ āđāļĨāļ°āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ‚āļ­āļ‡ clean up
function āđ€āļŠāļĢāđ‡āļˆāļŠāļīāđ‰āļ™ āļˆāļ°āđ€āļ‚āđ‰āļēāļŠāļđāđˆāļŠāļ–āļēāļ™āļ°āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨ
āđƒāļŦāļĄāđˆ
Babel Coder
Babel Coder
https://www.babelcoder.com
LIFE CYCLE
useEffect(() => {
return () => {
}
}, [deps])
āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ™āļĩāđ‰āļˆāļ°āļ–āļđāļāđ€āļĢāļĩāļĒāļāļ—āļļāļāļ„āļĢāļąāđ‰āļ‡āļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļŠāļđāđˆāļŠāļ–āļēāļ™āļ°
Mounted āļŦāļĢāļ·āļ­ Updated
āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ™āļĩāđ‰āđ€āļĢāļĩāļĒāļāļ§āđˆāļē cleanup function
āļˆāļ°āļ–āļđāļāđ€āļĢāļĩāļĒāļāļāđˆāļ­āļ™āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļˆāļ°āļŠāļīāđ‰āļ™āļŠāļļāļ”āļāļēāļĢ
āļ—āļģāļ‡āļēāļ™ āļŦāļĢāļ·āļ­āđ€āļĄāļ·āđˆāļ­ state āļŦāļĢāļ·āļ­ props āđƒāļ™
deps āđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡ cleanup function
āļˆāļ°āļ–āļđāļāđ€āļĢāļĩāļĒāļāļāđˆāļ­āļ™ āļāđˆāļ­āļ™āļˆāļ°āđ€āļ‚āđ‰āļēāļŠāļđāđˆāļŠāļ–āļēāļ™āļ°
undated
Babel Coder
Babel Coder
https://www.babelcoder.com
LIFE CYCLE
useEffect(() => {
return () => {
}
}, [])
āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ āļˆāļ°āļ—āļģāļ‡āļēāļ™āđāļ„āđˆāļ„āļĢāļąāđ‰āļ‡āđ€āļ”āļĩāļĒāļ§āđ€āļĄāļ·āđˆāļ­
āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāđ€āļ‚āđ‰āļēāļŠāļđāđˆāļŠāļ–āļēāļ™āļ° Mounted āļŦāļĢāļ·āļ­
render āđāļĨāđ‰āļ§āļšāļ™āđ€āļ§āđ‡āļšāđ€āļšāļĢāļēāļ§āđŒāđ€āļ‹āļ­āļĢāđŒ
Babel Coder
Babel Coder
https://www.babelcoder.com
LIFE CYCLE
useEffect(() => {
return () => {
}
}, [a, b])
āđ€āļĄāļ·āđˆāļ­āđ€āļ‚āđ‰āļēāļŠāļđāđˆāļŠāļ–āļēāļ™āļ° Mounted āļŸāļąāļ‡āļāđŒāļŠāļąāļ™
āļˆāļ°āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™
1.
āđ€āļĄāļ·āđˆāļ­ a āļŦāļĢāļ·āļ­ b āđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļ„āđˆāļēāļŸāļąāļ‡āļāđŒāļŠāļąāļ™
āļˆāļ°āļ–āļđāļāđ€āļĢāļĩāļĒāļāđ€āļžāļ·āđˆāļ­āđ€āļ›āđ‡āļ™āļāļēāļĢ cleanup
2.
āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļˆāļ°āļ—āļģāļāļēāļĢāļ­āļąāļžāđ€āļ”āļ—āļāļēāļĢ
āđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āđƒāļŦāļĄāđˆāđ„āļ›āļĒāļąāļ‡ DOM
3.
āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāđ€āļ‚āđ‰āļēāļŠāļđāđˆāļŠāļ–āļēāļ™āļ°
Unmounted āđāļĨāļ°āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ āļˆāļ°āđ„āļ”āđ‰
āļĢāļąāļšāļāļēāļĢāđ€āļĢāļĩāļĒāļāļ­āļĩāļāļ„āļĢāļąāđ‰āļ‡
4.
Babel Coder
Babel Coder
https://www.babelcoder.com
LIFE CYCLE
useEffect āđƒāļŠāđ‰āđ„āļ”āđ‰āđ€āļ‰āļžāļēāļ°āļšāļ™ Client Components
Babel Coder
Babel Coder
https://www.babelcoder.com
LIFE CYCLE
Babel Coder
Babel Coder
https://www.babelcoder.com
REACT HOOKS
āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ useState āđāļĨāļ° useEffect āđ€āļ›āđ‡āļ™āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ›āļĢāļ°āđ€āļ āļ—āļ—āļĩāđˆāđ€āļĢāļĩāļĒāļāļ§āđˆāļē React Hooks āļ­āļąāļ™āđ€āļ›āđ‡āļ™āļŸāļąāļ‡āļāđŒāļŠāļąāļ™
āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āļāļąāļš state āļŦāļĢāļ·āļ­ Life cycle āļ‚āļ­āļ‡āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒ āđ‚āļ”āļĒ React Hooks āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰
āļāļąāļš Client Components āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™
Babel Coder
Babel Coder
https://www.babelcoder.com
RULES OF HOOKS
āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ React Hooks āļ™āļąāđ‰āļ™āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰āđƒāļ™āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļŦāļĢāļ·āļ­āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ—āļĩāđˆāđ€āļ›āđ‡āļ™
Custom Hooks āđ„āļ”āđ‰āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™ āđ‚āļ”āļĒāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļ°āļ•āđ‰āļ­āļ‡āļ§āļēāļ‡āļ•āļģāđāļŦāļ™āđˆāļ‡āļ‚āļ­āļ‡āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āđ„āļ§āđ‰āļ—āļĩāđˆāļĢāļ°āļ”āļąāļšāļšāļ™āļŠāļļāļ”
(Top-level) āļ‚āļ­āļ‡āļŸāļąāļ‡āļāđŒāļŠāļąāļ™
Babel Coder
Babel Coder
https://www.babelcoder.com
CUSTOM HOOKS
Custom Hooks āļ„āļ·āļ­āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ—āļĩāđˆāļĄāļĩāļāļēāļĢāđƒāļŠāđ‰
Hooks āļ•āļąāļ§āļ­āļ·āđˆāļ™āļ āļēāļĒāđƒāļ™āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ āļ‚āđ‰āļ­āļŠāļąāļ‡āđ€āļāļ•āļ‚āļ­āļ‡
āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ›āļĢāļ°āđ€āļ āļ—āļ™āļĩāđ‰āļ„āļ·āļ­āļˆāļ°āļĄāļĩāļāļēāļĢāđƒāļŠāđ‰āļ„āļģāļ§āđˆāļē use āļ™āļģāļŦāļ™āđ‰āļē
āļŠāļ·āđˆāļ­āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ āđ€āļŠāđˆāļ™ useFetch āđ€āļ›āđ‡āļ™āļ•āđ‰āļ™ Custom
Hooks āđ€āļ›āđ‡āļ™āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ—āļĩāđˆāļˆāļ°āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđāļĒāļ
āļŠāđˆāļ§āļ™āļ‚āļ­āļ‡ Logic āļ­āļ­āļāļˆāļēāļāļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāđ€āļžāļ·āđˆāļ­
āļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđ‰āļ‹āđ‰āļģāđ„āļ”āđ‰āđ‚āļ”āļĒāļ‡āđˆāļēāļĒ
RENDERING
Babel Coder
https://www.babelcoder.com
Babel Coder
Babel Coder
https://www.babelcoder.com
1
2
3
Build
STATIC SIDE RENDERING
Cached Files
about.html
4
Babel Coder
Babel Coder
https://www.babelcoder.com
1
2
3
Build
CLIENT SIDE RENDERING
Cached Files
orders.html
4
Second Rendering
First Rendering
5 6
Babel Coder
Babel Coder
https://www.babelcoder.com
2
Second Rendering
First Rendering
5
6
4
CLIENT SIDE RENDERING
Babel Coder
Babel Coder
https://www.babelcoder.com
Render
1
2
3
4
5
DYNAMIC SERVER SIDE RENDERING
/news/latest
Babel Coder
Babel Coder
https://www.babelcoder.com
1
2
3
Build
4
Cached Files
articles
Static Flow
INCREMENTAL STATIC REGENERATION
Build
Cached Files
articles
6
7 8
9
10
revalidate: 60
CACHING
WITH FETCH
Babel Coder
https://www.babelcoder.com
Babel Coder
Babel Coder
https://www.babelcoder.com
pnpm build
STATIC
.next
server
app
products.html
Babel Coder
Babel Coder
https://www.babelcoder.com
DYNAMIC SSR
pnpm build
Babel Coder
Babel Coder
https://www.babelcoder.com
INCREMENTAL STATIC REGENERATION
pnpm build
.next
server
app
products.html
Babel Coder
Babel Coder
https://www.babelcoder.com
pnpm build
STATIC SITE GENERATION
app
products
[id]
page.tsx
.next
server
app
products
1.html
2.html
Babel Coder
Babel Coder
https://www.babelcoder.com
STATIC SITE GENERATION
.next
server
app
products
1.html
2.html
3.html
/products/3
.next
server
app
products
1.html
2.html
TAILWIND
Babel Coder
https://www.babelcoder.com
Babel Coder
Babel Coder
https://www.babelcoder.com
TAILWIND CSS
Tailwind CSS āđ€āļ›āđ‡āļ™āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļ„āļ‚āļ­āļ‡ CSS āļ—āļĩāđˆāđƒāļŠāđ‰āļŦāļĨāļąāļāļāļēāļĢāļ‚āļ­āļ‡
Utility-first āļāļĨāđˆāļēāļ§āļ„āļ·āļ­āđāļ•āđˆāļĨāļ°āļ„āļĨāļēāļŠāļ‚āļ­āļ‡ CSS āļˆāļ°āđāļ—āļ™āļ—āļĩāđˆāļāļŽāļ‚āļ­āļ‡
CSS āļ­āļĒāđˆāļēāļ‡āđƒāļ”āļ­āļĒāđˆāļēāļ‡āļŦāļ™āļķāđˆāļ‡ āļ™āļąāđˆāļ™āļ—āļģāđƒāļŦāđ‰āļ—āļąāđ‰āļ‡āđ‚āļ›āļĢāđ€āļˆāļ„āļˆāļ°āļĄāļĩāļāļĨāļļāđˆāļĄāļ‚āļ­āļ‡ CSS āļ—āļĩāđˆ
āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āļˆāļēāļāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļģāļ™āļ§āļ™āđ„āļĄāđˆāļĄāļēāļ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āļ„āļĨāļēāļŠāđ€āļŦāļĨāđˆāļēāļ™āļąāđ‰āļ™
āļ‹āđ‰āļģāđ„āļ”āđ‰
SHADCN UI
Babel Coder
https://www.babelcoder.com
Babel Coder
Babel Coder
https://www.babelcoder.com
SHADCN UI
Shadcn UI āđ€āļ›āđ‡āļ™āđ„āļĨāļšāļĢāļēāļĢāļĩāđˆāļ—āļĩāđˆāļĢāļ§āļĄāļāļĨāļļāđˆāļĄāļ‚āļ­āļ‡āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļ‚āļ­āļ‡
React āļ—āļĩāđˆāļĄāļĩāļĢāļđāļ›āđāļšāļšāļ‚āļ­āļ‡āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ Tailwind āđ€āļžāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āļŠāđˆāļ§āļ™
āđāļŠāļ”āļ‡āļœāļĨāļ­āļĒāđˆāļēāļ‡āļŠāļ§āļĒāļ‡āļēāļĄ Shadcn UI āļĄāļēāļžāļĢāđ‰āļ­āļĄ CLI āļ—āļĩāđˆāļ—āļģāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđƒāļ™
āļāļēāļĢāļ„āļąāļ”āļĨāļ­āļāđ‚āļ„āđ‰āļ”āļ‚āļ­āļ‡āļ„āļ­āļĄāđ‚āļžāđāļ™āļ™āļ—āđŒāļ•āđ‰āļ™āļ‰āļšāļąāļšāļĄāļēāđƒāļŠāđˆāđ„āļ§āđ‰āđƒāļ™āđ‚āļ›āļĢāđ€āļˆāļ„āļ‚āļ­āļ‡
āđ€āļĢāļē āđ€āļĢāļēāļˆāļķāļ‡āļŠāļēāļĄāļēāļĢāļ–āđāļāđ‰āđ„āļ‚ āļ›āļĢāļąāļšāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ‡āđˆāļēāļĒāļ”āļēāļĒ
FORM
MANAGEMENT
Babel Coder
https://www.babelcoder.com
Babel Coder
Babel Coder
https://www.babelcoder.com
ZOD
āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš input āļ•āđˆāļēāļ‡ āđ† āļ—āļĩāđˆāļ­āļĒāļđāđˆāļ āļēāļĒāđƒāļ™āļŸāļ­āļĢāđŒāļĄ (<form>) āđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļˆāļ°
āđ€āļ›āļĢāļĩāļĒāļšāđ€āļŠāļĄāļ·āļ­āļ™āđ€āļ›āđ‡āļ™āļŸāļīāļĨāļ”āđŒāļ—āļĩāđˆāļ­āļĒāļđāđˆāđƒāļ•āđ‰āļ­āļ­āļ›āđ€āļˆāđ‡āļāļ•āđŒāđ€āļ”āļĩāļĒāļ§āļāļąāļ™ āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš
āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡ input āļ•āđˆāļēāļ‡ āđ† āđƒāļ™āļŸāļ­āļĢāđŒāļĄāļˆāļķāļ‡āļ„āļ§āļĢāļ™āļīāļĒāļēāļĄāļāļŽāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļšāļš
Schema
Zod āđ€āļ›āđ‡āļ™āđ„āļĨāļšāļĢāļēāļĢāļĩāđˆāļ—āļĩāđˆāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āđˆāļēāļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļš Schema āđ„āļ”āđ‰
Babel Coder
Babel Coder
https://www.babelcoder.com
Zod
ZOD OBJECT
āđ„āļĨāļšāļĢāļēāļĢāļĩāđˆāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļŸāļ­āļĢāđŒāļĄ āļĄāļąāļāļĢāļ§āļšāļĢāļ§āļĄāļ„āđˆāļēāļ‚āļ­āļ‡ input āļ•āđˆāļēāļ‡ āđ† āļ āļēāļĒāđƒāļ™
āļŸāļ­āļĢāđŒāļĄāđƒāļŦāđ‰āļ­āļĒāļđāđˆāđƒāļ™āļĢāļđāļ›āđāļšāļšāļ‚āļ­āļ‡āļ­āļ­āļ›āđ€āļˆāđ‡āļāļ•āđŒ āļ”āļąāļ‡āļ™āļąāđ‰āļ™āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰ Zod āđƒāļ™āļāļēāļĢ
āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ­āļ­āļ›āđ€āļˆāđ‡āļāļ•āđŒāļ‚āļ­āļ‡ input āđƒāļ™āļŸāļ­āļĢāđŒāļĄāļ™āļąāđ‰āļ™āđ„āļ”āđ‰
Input
Babel Coder
Babel Coder
https://www.babelcoder.com
EXTEND
āļšāļēāļ‡āļ„āļĢāļąāđ‰āļ‡āđ€āļĢāļēāļ•āđ‰āļ­āļ‡āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļāļŽāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđƒāļŦāļĄāđˆāļ—āļĩāđˆāļŠāļ·āļšāļ—āļ­āļ”āļĄāļēāļˆāļēāļāļāļŽāļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆ
āđāļĨāđ‰āļ§ āđ€āļĢāļēāļˆāļķāļ‡āļ—āļģāļāļēāļĢ extend āļāļŽāđ€āļ”āļīāļĄāļ”āđ‰āļ§āļĒāļŠāđˆāļ§āļ™āđ€āļžāļīāđˆāļĄāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢ
Babel Coder
Babel Coder
https://www.babelcoder.com
CUSTOM ERROR MESSAGE
āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļĢāļ°āļšāļļāļžāļĢāđ‡āļ­āļžāđ€āļžāļ­āļĢāđŒāļ•āļĩāđ‰ message āđ€āļžāļ·āđˆāļ­āļĢāļ°āļšāļļāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđāļŠāļ”āļ‡āļœāļĨāļ‚āđ‰āļ­
āļœāļīāļ”āļžāļĨāļēāļ”āđ„āļ”āđ‰āđƒāļ™āļāļŽāļ‚āļ­āļ‡āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš
Babel Coder
Babel Coder
https://www.babelcoder.com
ZOD INFER
āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļžāļīāđ€āļĻāļĐāļ­āļĒāđˆāļēāļ‡āļŦāļ™āļķāđˆāļ‡āļ‚āļ­āļ‡ Zod āļ„āļ·āļ­āļāļēāļĢāļĢāđ‰āļ­āļ‡āļ‚āļ­āļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨ
TypeScript āļˆāļēāļāļ„āļģāļŠāļąāđˆāļ‡ z.infer
{
email: string;
password: string;
}
Babel Coder
Babel Coder
https://www.babelcoder.com
REACT HOOK FORM
React Hook Form āđ€āļ›āđ‡āļ™āđ„āļĨāļšāļĢāļēāļĢāļĩāđˆāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļŸāļ­āļĢāđŒāļĄāļšāļ™ React āļ—āļĩāđˆ
āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āļ‡āļēāļ™āļ„āļ§āļšāļ„āļđāđˆāļāļąāļš Zod āđāļĨāļ° Shadcn UI āđ„āļ”āđ‰
$ docker run -p 5152:80 babelcoder/intro-to-devops-ui:1.0
Babel Coder
Babel Coder
https://www.babelcoder.com
REACT HOOK FORM
Babel Coder
Babel Coder
https://www.babelcoder.com
REACT HOOK FORM
Babel Coder
Babel Coder
https://www.babelcoder.com
REACT HOOK FORM
Babel Coder
Babel Coder
https://www.babelcoder.com
REACT HOOK FORM
Babel Coder
Babel Coder
https://www.babelcoder.com
REACT HOOK FORM

More Related Content

More from NuttavutThongjor1 (20)

PDF
Modern DevOps Day 5.pdfModern DevOps Day 5.pdf
NuttavutThongjor1
 
PDF
Modern DevOps Day 4.pdfModern DevOps Day 4.pdf
NuttavutThongjor1
 
PDF
Modern DevOps Day 3.pdfModern DevOps Day 3.pdf
NuttavutThongjor1
 
PDF
Modern DevOps Day 2.pdfModern DevOps Day 2.pdf
NuttavutThongjor1
 
PDF
Modern DevOps Day 1.pdfModern DevOps Day 1.pdfModern DevOps Day 1.pdf
NuttavutThongjor1
 
PDF
misc.pdfmisc.pdfmisc.pdfmisc.pdfmisc.pdfmisc.pdfmisc.pdfmisc.pdfmisc.pdfmisc.pdf
NuttavutThongjor1
 
PDF
Nest.js Microservices (1).pdf Nest.js Microservices (1).pdfNest.js Microservi...
NuttavutThongjor1
 
PDF
Nest.js Microservices.pdfNest.js Microservices.pdfNest.js Microservices.pdfNe...
NuttavutThongjor1
 
PDF
Intro to Modern DevOps.pdfIntro to Modern DevOps.pdfIntro to Modern DevOps.pdf
NuttavutThongjor1
 
PDF
10 āļ§āļąāļ’āļ™āļ˜āļĢāļĢāļĄāļ­āļ‡āļ„āđŒāļāļĢāļ‚āļ­āļ‡ DevOps.pdf10 āļ§āļąāļ’āļ™āļ˜āļĢāļĢāļĄāļ­āļ‡āļ„āđŒāļāļĢāļ‚āļ­āļ‡ DevOps.pdf
NuttavutThongjor1
 
PDF
9 logging and monitoring.pdf 9 logging and monitoring.pdf
NuttavutThongjor1
 
PDF
8 iac.pdf 8 iac.pdf8 iac.pdf8 iac.pdf8 iac.pdf8 iac.pdf8 iac.pdf
NuttavutThongjor1
 
PDF
7 cicd.pdf 7 cicd.pdf 7 cicd.pdf 7 cicd.pdf
NuttavutThongjor1
 
PDF
6 GitOps āļ„āļ·āļ­āļ­āļ°āđ„āļĢ.pdf 6 GitOps āļ„āļ·āļ­āļ­āļ°āđ„āļĢ.pdf 6 GitOps āļ„āļ·āļ­āļ­āļ°āđ„āļĢ.pdf
NuttavutThongjor1
 
PDF
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf
NuttavutThongjor1
 
PDF
4 Docker.pdf 4 Docker.pdf 4 Docker.pdf 4 Docker.pdf
NuttavutThongjor1
 
PDF
3 Microservices.pdf 3 Microservices 3 Microservices.pdf.pdf
NuttavutThongjor1
 
PDF
2 āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ cloud computing.pdf 2 āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ cloud computing.pdf
NuttavutThongjor1
 
PDF
1 devops āļ„āļ·āļ­āļ­āļ°āđ„āļĢ.pdf 1 devops āļ„āļ·āļ­āļ­āļ°āđ„āļĢ.pdf
NuttavutThongjor1
 
PDF
angular fundamentals.pdf angular fundamentals.pdf
NuttavutThongjor1
 
Modern DevOps Day 5.pdfModern DevOps Day 5.pdf
NuttavutThongjor1
 
Modern DevOps Day 4.pdfModern DevOps Day 4.pdf
NuttavutThongjor1
 
Modern DevOps Day 3.pdfModern DevOps Day 3.pdf
NuttavutThongjor1
 
Modern DevOps Day 2.pdfModern DevOps Day 2.pdf
NuttavutThongjor1
 
Modern DevOps Day 1.pdfModern DevOps Day 1.pdfModern DevOps Day 1.pdf
NuttavutThongjor1
 
misc.pdfmisc.pdfmisc.pdfmisc.pdfmisc.pdfmisc.pdfmisc.pdfmisc.pdfmisc.pdfmisc.pdf
NuttavutThongjor1
 
Nest.js Microservices (1).pdf Nest.js Microservices (1).pdfNest.js Microservi...
NuttavutThongjor1
 
Nest.js Microservices.pdfNest.js Microservices.pdfNest.js Microservices.pdfNe...
NuttavutThongjor1
 
Intro to Modern DevOps.pdfIntro to Modern DevOps.pdfIntro to Modern DevOps.pdf
NuttavutThongjor1
 
10 āļ§āļąāļ’āļ™āļ˜āļĢāļĢāļĄāļ­āļ‡āļ„āđŒāļāļĢāļ‚āļ­āļ‡ DevOps.pdf10 āļ§āļąāļ’āļ™āļ˜āļĢāļĢāļĄāļ­āļ‡āļ„āđŒāļāļĢāļ‚āļ­āļ‡ DevOps.pdf
NuttavutThongjor1
 
9 logging and monitoring.pdf 9 logging and monitoring.pdf
NuttavutThongjor1
 
8 iac.pdf 8 iac.pdf8 iac.pdf8 iac.pdf8 iac.pdf8 iac.pdf8 iac.pdf
NuttavutThongjor1
 
7 cicd.pdf 7 cicd.pdf 7 cicd.pdf 7 cicd.pdf
NuttavutThongjor1
 
6 GitOps āļ„āļ·āļ­āļ­āļ°āđ„āļĢ.pdf 6 GitOps āļ„āļ·āļ­āļ­āļ°āđ„āļĢ.pdf 6 GitOps āļ„āļ·āļ­āļ­āļ°āđ„āļĢ.pdf
NuttavutThongjor1
 
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf
NuttavutThongjor1
 
4 Docker.pdf 4 Docker.pdf 4 Docker.pdf 4 Docker.pdf
NuttavutThongjor1
 
3 Microservices.pdf 3 Microservices 3 Microservices.pdf.pdf
NuttavutThongjor1
 
2 āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ cloud computing.pdf 2 āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ cloud computing.pdf
NuttavutThongjor1
 
1 devops āļ„āļ·āļ­āļ­āļ°āđ„āļĢ.pdf 1 devops āļ„āļ·āļ­āļ­āļ°āđ„āļĢ.pdf
NuttavutThongjor1
 
angular fundamentals.pdf angular fundamentals.pdf
NuttavutThongjor1
 

Next.js web development.pdfNext.js web development.pdfNext.js web development.pdfNext.js web development.pdf