@@ -51,7 +51,7 @@ export default function ProductPage({ productId, referrer, theme }) {
5151#### ๆณจๆไบ้
{/*caveats*/}
5252
5353* ` useCallback` ใฏใใใฏใงใใฎใงใ**ใณใณใใผใใณใใฎใใใใฌใใซ**ใพใใฏ็ฌ่ชใฎใใใฏใงใฎใฟๅผใณๅบใใใจใใงใใพใใใซใผใใๆกไปถใฎไธญใงๅผใณๅบใใใจใฏใงใใพใใใใใใๅฟ
่ฆใชๅ ดๅใฏใๆฐใใใณใณใใผใใณใใๆฝๅบใใใใฎไธญใซใใฎ็ถๆ
ใ็งปๅใใใฆใใ ใใใ
54- * React ใฏใ**็นๅฎใฎ็็ฑใใชใ้ใใใญใฃใใทใฅใใใ้ขๆฐใ็ ดๆฃใใพใใใ** ใใจใใฐใ้็บไธญใซใฏใใณใณใใผใใณใใฎใใกใคใซใ็ทจ้ใใใจ React ใฏใญใฃใใทใฅใ็ ดๆฃใใพใใ้็บ็ฐๅขใจๆฌ็ช็ฐๅขใฎไธกๆนใงใๅๅใใฆใณใๆใซใณใณใใผใใณใใไธๆๅๆญขใใใจใReact ใฏใญใฃใใทใฅใ็ ดๆฃใใพใใๅฐๆฅ็ใซใReact ใฏใญใฃใใทใฅใ็ ดๆฃใใใใจใๆดป็จใใใใใชใๆฉ่ฝใ่ฟฝๅ ใใใใใใใพใใใไพใใฐใๅฐๆฅ็ใซ React ใไปฎๆณๅใชในใใซๅฏพใใ็ตใฟ่พผใฟใตใใผใใ่ฟฝๅ ใใๅ ดๅใไปฎๆณๅใใใใใผใใซใฎใใฅใผใใผใใใในใฏใญใผใซใขใฆใใใ้
็ฎใฎใญใฃใใทใฅใ็ ดๆฃใใใใจใ็ใซใใชใฃใฆใใพใใใใใฏใ`useCallback` ใใใใฉใผใใณในใฎๆ้ฉๅใจใใฆๅฉ็จใใๅ ดๅใซๆๅพ
ใซๆฒฟใฃใๅไฝใจใชใใพใใใใใงใชใๅ ดๅใฏใ[state ๅคๆฐ](/reference/react/useState#im-trying-to-set-state-to-a-function-but-it-gets-called-instead) ใ [ref](/reference/react/useRef#avoiding-recreating-the-ref-contents) ใฎๆนใ้ฉๅใใใใใพใใใ
54+ * React ใฏใ**็นๅฎใฎ็็ฑใใชใ้ใใใญใฃใใทใฅใใใ้ขๆฐใ็ ดๆฃใใพใใ**ใ ใใจใใฐใ้็บไธญใซใฏใใณใณใใผใใณใใฎใใกใคใซใ็ทจ้ใใใจ React ใฏใญใฃใใทใฅใ็ ดๆฃใใพใใ้็บ็ฐๅขใจๆฌ็ช็ฐๅขใฎไธกๆนใงใๅๅใใฆใณใๆใซใณใณใใผใใณใใไธๆๅๆญขใใใจใReact ใฏใญใฃใใทใฅใ็ ดๆฃใใพใใๅฐๆฅ็ใซใReact ใฏใญใฃใใทใฅใ็ ดๆฃใใใใจใๆดป็จใใใใใชใๆฉ่ฝใ่ฟฝๅ ใใใใใใใพใใใไพใใฐใๅฐๆฅ็ใซ React ใไปฎๆณๅใชในใใซๅฏพใใ็ตใฟ่พผใฟใตใใผใใ่ฟฝๅ ใใๅ ดๅใไปฎๆณๅใใใใใผใใซใฎใใฅใผใใผใใใในใฏใญใผใซใขใฆใใใ้
็ฎใฎใญใฃใใทใฅใ็ ดๆฃใใใใจใ็ใซใใชใฃใฆใใพใใใใใฏใ`useCallback` ใใใใฉใผใใณในใฎๆ้ฉๅใจใใฆๅฉ็จใใๅ ดๅใซๆๅพ
ใซๆฒฟใฃใๅไฝใจใชใใพใใใใใงใชใๅ ดๅใฏใ[state ๅคๆฐ](/reference/react/useState#im-trying-to-set-state-to-a-function-but-it-gets-called-instead) ใ [ref](/reference/react/useRef#avoiding-recreating-the-ref-contents) ใฎๆนใ้ฉๅใใใใใพใใใ
5555
5656---
5757
@@ -103,7 +103,7 @@ function ProductPage({ productId, referrer, theme }) {
103103
104104` theme` ใใญใใใฃใๅใๆฟใใใจใขใใชใไธ็ฌใใชใผใบใใใใจใซๆฐไปใใพใใใใJSX ใใ ` < ShippingForm / > ` ใๅใ้คใใจใ้ซ้ใซๆใใใใพใใใใใฏ ` ShippingForm` ใณใณใใผใใณใใๆ้ฉๅใใไพกๅคใใใใใจใ็คบใใฆใใพใใ
105105
106- **ใใใฉใซใใงใฏใใณใณใใผใใณใใๅใฌใณใใผใใใใจใReact ใฏใใฎๅญ่ฆ็ด ๅ
จใฆใๅๅธฐ็ใซๅใฌใณใใผใใพใใ** ใใใใ` ProductPage` ใ็ฐใชใ ` theme` ใงๅใฌใณใใผใใใใจใ` ShippingForm` ใณใณใใผใใณใ*ใ*ๅใฌใณใใผใใใ็็ฑใงใใๅใฌใณใใผใซๅคใใฎ่จ็ฎใๅฟ
่ฆใจใใชใใณใณใใผใใณใใซใจใฃใฆใฏๅ้กใใใพใใใใใใใๅใฌใณใใผใ้
ใใใจใ็ขบ่ชใใๅ ดๅใ [` memo` ](/reference/react/memo) ใงใฉใใใใใใจใงใprops ใๅๅใฎใฌใณใใผๆใจๅใใงใใๅ ดๅใซ ` ShippingForm` ใซๅใฌใณใใผใในใญใใใใใใใซๆ็คบใใใใจใใงใใพใใ
106+ **ใใใฉใซใใงใฏใใณใณใใผใใณใใๅใฌใณใใผใใใใจใReact ใฏใใฎๅญ่ฆ็ด ๅ
จใฆใๅๅธฐ็ใซๅใฌใณใใผใใพใ**ใ ใใใใ` ProductPage` ใ็ฐใชใ ` theme` ใงๅใฌใณใใผใใใใจใ` ShippingForm` ใณใณใใผใใณใ*ใ*ๅใฌใณใใผใใใ็็ฑใงใใๅใฌใณใใผใซๅคใใฎ่จ็ฎใๅฟ
่ฆใจใใชใใณใณใใผใใณใใซใจใฃใฆใฏๅ้กใใใพใใใใใใใๅใฌใณใใผใ้
ใใใจใ็ขบ่ชใใๅ ดๅใ [` memo` ](/reference/react/memo) ใงใฉใใใใใใจใงใprops ใๅๅใฎใฌใณใใผๆใจๅใใงใใๅ ดๅใซ ` ShippingForm` ใซๅใฌใณใใผใในใญใใใใใใใซๆ็คบใใใใจใใงใใพใใ
107107
108108` ` ` js {3 ,5 }
109109import { memo } from ' react' ;
@@ -113,7 +113,7 @@ const ShippingForm = memo(function ShippingForm({ onSubmit }) {
113113});
114114` ` `
115115
116- **ใใฎๅคๆดใซใใใใในใฆใฎ props ใๅๅใฎใฌใณใใผๆใจ*ๅใ*ๅ ดๅใ` ShippingForm` ใฏๅใฌใณใใผใในใญใใใใพใใ** ใใใ้ขๆฐใฎใญใฃใใทใฅใ้่ฆใซใชใ็ฌ้ใงใ๏ผ ` handleSubmit` ใ ` useCallback` ใชใใงๅฎ็พฉใใใจใใพใใใใ
116+ **ใใฎๅคๆดใซใใใใในใฆใฎ props ใๅๅใฎใฌใณใใผๆใจ*ๅใ*ๅ ดๅใ` ShippingForm` ใฏๅใฌใณใใผใในใญใใใใพใ**ใ ใใใ้ขๆฐใฎใญใฃใใทใฅใ้่ฆใซใชใ็ฌ้ใงใ๏ผ ` handleSubmit` ใ ` useCallback` ใชใใงๅฎ็พฉใใใจใใพใใใใ
117117
118118` ` ` js {2 ,3 ,8 ,12 - 13 }
119119function ProductPage ({ productId, referrer, theme }) {
@@ -134,7 +134,7 @@ function ProductPage({ productId, referrer, theme }) {
134134}
135135` ` `
136136
137- **JavaScriptใงใฏใ` function () {}` ใพใใฏ ` () => {}` ใฏๅธธใซ*็ฐใชใ*้ขๆฐใไฝๆใใพใใ** ใใใฏ ` {}` ใฎใชใใธใงใฏใใชใใฉใซใๅธธใซๆฐใใใชใใธใงใฏใใไฝๆใใใฎใจไผผใฆใใพใใ้ๅธธใใใใฏๅ้กใซใชใใพใใใใใใใฏ ` ShippingForm` ใฎ props ใๆฑบใใฆๅใใซใชใใชใใจใใใใจใๆๅณใใใใชใใฎ [` memo` ](/reference/react/memo) ใซใใๆ้ฉๅใฏๆฉ่ฝใใชใใงใใใใใใใ ` useCallback` ใไพฟๅฉใชๅ ด้ขใงใใ
137+ **JavaScriptใงใฏใ` function () {}` ใพใใฏ ` () => {}` ใฏๅธธใซ*็ฐใชใ*้ขๆฐใไฝๆใใพใ**ใ ใใใฏ ` {}` ใฎใชใใธใงใฏใใชใใฉใซใๅธธใซๆฐใใใชใใธใงใฏใใไฝๆใใใฎใจไผผใฆใใพใใ้ๅธธใใใใฏๅ้กใซใชใใพใใใใใใใฏ ` ShippingForm` ใฎ props ใๆฑบใใฆๅใใซใชใใชใใจใใใใจใๆๅณใใใใชใใฎ [` memo` ](/reference/react/memo) ใซใใๆ้ฉๅใฏๆฉ่ฝใใชใใงใใใใใใใ ` useCallback` ใไพฟๅฉใชๅ ด้ขใงใใ
138138
139139` ` ` js {2 ,3 ,8 ,12 - 13 }
140140function ProductPage ({ productId, referrer, theme }) {
@@ -159,7 +159,7 @@ function ProductPage({ productId, referrer, theme }) {
159159
160160<Note>
161161
162- **` useCallback` ใฏใใใฉใผใใณในใฎๆ้ฉๅใจใใฆใฎใฟ้ ผใในใใงใใ** ใใใณใผใใใใใชใใงใฏๅไฝใใชใๅ ดๅใฏใๅบๆฌ็ใชๅ้กใ่ฆใคใใฆใพใใใใไฟฎๆญฃใใฆใใ ใใใใใฎๅพใ` useCallback` ใๅๅบฆ่ฟฝๅ ใใใใจใใงใใพใใ
162+ **` useCallback` ใฏใใใฉใผใใณในใฎๆ้ฉๅใจใใฆใฎใฟ้ ผใในใใงใ**ใ ใใใณใผใใใใใชใใงใฏๅไฝใใชใๅ ดๅใฏใๅบๆฌ็ใชๅ้กใ่ฆใคใใฆใพใใใใไฟฎๆญฃใใฆใใ ใใใใใฎๅพใ` useCallback` ใๅๅบฆ่ฟฝๅ ใใใใจใใงใใพใใ
163163
164164</Note>
165165
@@ -196,9 +196,9 @@ function ProductPage({ productId, referrer }) {
196196
197197ใใฎ้ใใฏใญใฃใใทใฅใงใใ*ๅ
ๅฎน*ใงใใ
198198
199- * **[` useMemo` ](/reference/react/useMemo) ใฏใใชใใฎ้ขๆฐใฎๅผใณๅบใ*็ตๆ*ใใญใฃใใทใฅใใพใใ** ใใฎไพใงใฏใ` product` ใๅคๆดใใใชใ้ใใ` computeRequirements (product)` ใฎๅผใณๅบใ็ตๆใใญใฃใใทใฅใใพใใใใใซใใใ` ShippingForm` ใไธๅฟ
่ฆใซๅใฌใณใใผใใใใจใชใใ` requirements` ใชใใธใงใฏใใไธไฝใซๆธกใใใจใใงใใพใใๅฟ
่ฆใซๅฟใใฆใReact ใฏใฌใณใใผไธญใซใใชใใๆธกใใ้ขๆฐใๅผใณๅบใใฆ็ตๆใ่จ็ฎใใพใใ
199+ * **[` useMemo` ](/reference/react/useMemo) ใฏใใชใใฎ้ขๆฐใฎๅผใณๅบใ*็ตๆ*ใใญใฃใใทใฅใใพใ**ใ ใใฎไพใงใฏใ` product` ใๅคๆดใใใชใ้ใใ` computeRequirements (product)` ใฎๅผใณๅบใ็ตๆใใญใฃใใทใฅใใพใใใใใซใใใ` ShippingForm` ใไธๅฟ
่ฆใซๅใฌใณใใผใใใใจใชใใ` requirements` ใชใใธใงใฏใใไธไฝใซๆธกใใใจใใงใใพใใๅฟ
่ฆใซๅฟใใฆใReact ใฏใฌใณใใผไธญใซใใชใใๆธกใใ้ขๆฐใๅผใณๅบใใฆ็ตๆใ่จ็ฎใใพใใ
200200
201- * **` useCallback` ใฏ*้ขๆฐ่ชไฝ*ใใญใฃใใทใฅใใพใใ** ` useMemo` ใจใฏ็ฐใชใใใใชใใๆไพใใ้ขๆฐใๅผใณๅบใใพใใใไปฃใใใซใใใชใใๆไพใใ้ขๆฐใใญใฃใใทใฅใใฆใ` productId` ใพใใฏ ` referrer` ใๅคๆดใใใชใ้ใใ` handleSubmit` *่ชไฝ*ใๅคๆดใใใชใใใใซใใพใใใใใซใใใ` ShippingForm` ใไธๅฟ
่ฆใซๅใฌใณใใผใใใใจใชใใ` handleSubmit` ้ขๆฐใไธไฝใซๆธกใใใจใใงใใพใใใฆใผใถใผใใใฉใผใ ใ้ไฟกใใใพใงใใชใใฎใณใผใใฏๅฎ่กใใใพใใใ
201+ * **` useCallback` ใฏ*้ขๆฐ่ชไฝ*ใใญใฃใใทใฅใใพใ**ใ ` useMemo` ใจใฏ็ฐใชใใใใชใใๆไพใใ้ขๆฐใๅผใณๅบใใพใใใไปฃใใใซใใใชใใๆไพใใ้ขๆฐใใญใฃใใทใฅใใฆใ` productId` ใพใใฏ ` referrer` ใๅคๆดใใใชใ้ใใ` handleSubmit` *่ชไฝ*ใๅคๆดใใใชใใใใซใใพใใใใใซใใใ` ShippingForm` ใไธๅฟ
่ฆใซๅใฌใณใใผใใใใจใชใใ` handleSubmit` ้ขๆฐใไธไฝใซๆธกใใใจใใงใใพใใใฆใผใถใผใใใฉใผใ ใ้ไฟกใใใพใงใใชใใฎใณใผใใฏๅฎ่กใใใพใใใ
202202
203203ใใงใซ [` useMemo` ](/reference/react/useMemo) ใซ่ฉณใใๅ ดๅใ` useCallback` ใๆฌกใฎใใใซ่ใใใจๅฝน็ซใคใใใใใพใใใ
204204
@@ -228,7 +228,7 @@ function useCallback(fn, dependencies) {
228228
229229` useCallback` ใฏ้ขๆฐใฎ*ไฝๆ*ใ้ฒใใใใงใฏใชใใใจใซๆณจๆใใฆใใ ใใใใใชใใฏๅธธใซ้ขๆฐใไฝๆใใฆใใพใ๏ผใใใฏๅ้กใใใพใใ๏ผ๏ผใใใใใไฝใๅคใใใชใๅ ดๅใReactใฏใใใ็ก่ฆใใใญใฃใใทใฅใใใ้ขๆฐใ่ฟใใพใใ
230230
231- **ๅฎ้ใซใฏใไปฅไธใฎใใใคใใฎๅๅใซๅพใใใจใงใๅคใใฎใกใขๅใไธ่ฆใซใใใใจใใงใใพใใ**
231+ **ๅฎ้ใซใฏใไปฅไธใฎใใใคใใฎๅๅใซๅพใใใจใงใๅคใใฎใกใขๅใไธ่ฆใซใใใใจใใงใใพใ**ใ
232232
2332331. ใณใณใใผใใณใใไปใฎใณใณใใผใใณใใ่ฆ่ฆ็ใซใฉใใใใใจใใฏใใใใ[ๅญใจใใฆ JSX ใๅใๅ
ฅใใใใใซใใพใใ](/learn/passing-props-to-a-component#passing-jsx-as-children) ใใใจใใฉใใใผใณใณใใผใใณใใ่ช่บซใฎ็ถๆ
ใๆดๆฐใใใจใReact ใฏใใฎๅญใๅใฌใณใใผใใๅฟ
่ฆใใชใใใจใ่ช่ญใใพใใ
2342341. ใญใผใซใซ็ถๆ
ใๅชๅ
ใใๅฟ
่ฆไปฅไธใซ [state ใๅผใไธใใชใใง](/learn/sharing-state-between-components)ใใ ใใใใใฉใผใ ใใใขใคใใ ใใใใผใใใฆใใใใฉใใใฎใใใชไธๆ็ใช็ถๆ
ใใใชใผใฎใใใใใฐใญใผใใซ็ถๆ
ใฉใคใใฉใชใซไฟๆใใชใใงใใ ใใใ
@@ -248,7 +248,7 @@ function useCallback(fn, dependencies) {
248248
249249ใซใฆใณใฟใผใฎๅขๅ ใฏ้
ใๆใใใใใงใใใใใชใใชใใใใใฏ้
ๅปถใใใใใ ` ShippingForm` ใฎๅใฌใณใใผใๅผทๅถใใใใใงใใใใใฏใใซใฆใณใฟใผใๅคๆดใใใใฆใผใถใผใฎๆฐใใ้ธๆใ็ป้ขไธใซๅๆ ใใๅฟ
่ฆใใใใใใไบๆณใใใๅไฝใงใใ
250250
251- ๆฌกใซใใใผใใฎๅใๆฟใใ่ฉฆใใฆใฟใฆใใ ใใใ**ไบบ็บ็ใช้
ๅปถใซใ้ขใใใใ` useCallback` ใจ [` memo` ](/reference/react/memo) ใ็ตใฟๅใใใใใจใงใใใใฏ้ใใงใ๏ผ** ` ShippingForm` ใฏใ` handleSubmit` ้ขๆฐใๅคๆดใใใฆใใชใใใใๅใฌใณใใผใในใญใใใใพใใใ` handleSubmit` ้ขๆฐใฏๅคๆดใใใฆใใพใใใใชใใชใใ` productId` ใจ ` referrer` ๏ผใใชใใฎ ` useCallback` ใฎไพๅญ้ขไฟ๏ผใฎไธกๆนใๆๅพใฎใฌใณใใผไปฅ้ใซๅคๆดใใใฆใใชใใใใงใใ
251+ ๆฌกใซใใใผใใฎๅใๆฟใใ่ฉฆใใฆใฟใฆใใ ใใใ**ไบบ็บ็ใช้
ๅปถใซใ้ขใใใใ` useCallback` ใจ [` memo` ](/reference/react/memo) ใ็ตใฟๅใใใใใจใงใใใใฏ้ใใงใ**๏ผ ` ShippingForm` ใฏใ` handleSubmit` ้ขๆฐใๅคๆดใใใฆใใชใใใใๅใฌใณใใผใในใญใใใใพใใใ` handleSubmit` ้ขๆฐใฏๅคๆดใใใฆใใพใใใใชใใชใใ` productId` ใจ ` referrer` ๏ผใใชใใฎ ` useCallback` ใฎไพๅญ้ขไฟ๏ผใฎไธกๆนใๆๅพใฎใฌใณใใผไปฅ้ใซๅคๆดใใใฆใใชใใใใงใใ
252252
253253<Sandpack>
254254
@@ -751,7 +751,7 @@ function ChatRoom({ roomId }) {
751751 // ...
752752` ` `
753753
754- ใใใซใใใ` roomId` ใๅใๅ ดๅใซๅใฌใณใใผ้ใง ` createOptions` ้ขๆฐใๅใใงใใใใจใไฟ่จผใใใพใใ**ใใใใ้ขๆฐใฎไพๅญๆงใๅฟ
่ฆใจใใชใใใใซใใใใจใใใใซ่ฏใใงใใ** ้ขๆฐใใจใใงใฏใใฎ*ๅ
้จ*ใซ็งปๅใใพใใ
754+ ใใใซใใใ` roomId` ใๅใๅ ดๅใซๅใฌใณใใผ้ใง ` createOptions` ้ขๆฐใๅใใงใใใใจใไฟ่จผใใใพใใ**ใใใใ้ขๆฐใฎไพๅญๆงใๅฟ
่ฆใจใใชใใใใซใใใใจใใใใซ่ฏใใงใ**ใ ้ขๆฐใใจใใงใฏใใฎ*ๅ
้จ*ใซ็งปๅใใพใใ
755755
756756` ` ` js {5 - 10 ,16 }
757757function ChatRoom ({ roomId }) {
0 commit comments