<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="th">
	<id>http://158.108.32.49/wiki/index.php?action=history&amp;feed=atom&amp;title=Vite_for_react</id>
	<title>Vite for react - ประวัติรุ่นแก้ไข</title>
	<link rel="self" type="application/atom+xml" href="http://158.108.32.49/wiki/index.php?action=history&amp;feed=atom&amp;title=Vite_for_react"/>
	<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=Vite_for_react&amp;action=history"/>
	<updated>2026-04-15T04:32:03Z</updated>
	<subtitle>ประวัติรุ่นแก้ไขของหน้านี้ในวิกิ</subtitle>
	<generator>MediaWiki 1.33.1</generator>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=Vite_for_react&amp;diff=59713&amp;oldid=prev</id>
		<title>Jittat: /* B. ส่วนของ Source Code (Serving on Demand) */</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=Vite_for_react&amp;diff=59713&amp;oldid=prev"/>
		<updated>2026-01-01T13:57:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;B. ส่วนของ Source Code (Serving on Demand)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;th&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;←รุ่นแก้ไขก่อนหน้า&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;รุ่นแก้ไขเมื่อ 13:57, 1 มกราคม 2569&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l49&quot; &gt;แถว 49:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;แถว 49:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: &amp;lt;code lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;module&amp;quot; src=&amp;quot;/src/main.jsx&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: &amp;lt;code lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;module&amp;quot; src=&amp;quot;/src/main.jsx&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: Browser จะเห็นคำสั่ง &amp;lt;code&amp;gt;type=&amp;quot;module&amp;quot;&amp;lt;/code&amp;gt; และส่ง Request เพื่อขอไฟล์ main.jsx&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: Browser จะเห็นคำสั่ง &amp;lt;code&amp;gt;type=&amp;quot;module&amp;quot;&amp;lt;/code&amp;gt; และส่ง Request เพื่อขอไฟล์ main.jsx&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &amp;#039;&amp;#039;&amp;#039;Vite Intercept (ดักจับและแปลง):&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &amp;#039;&amp;#039;&amp;#039;Vite Intercept (ดักจับและแปลง):&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: Vite Server ได้รับคำขอไฟล์ main.jsx&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: Vite Server ได้รับคำขอไฟล์ main.jsx&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: Vite ทำการอ่านไฟล์ และแปลง (Transpile) โค้ด &amp;#039;&amp;#039;&amp;#039;JSX&amp;#039;&amp;#039;&amp;#039; ให้เป็น &amp;#039;&amp;#039;&amp;#039;Pure JavaScript&amp;#039;&amp;#039;&amp;#039; แบบ Real-time&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: Vite ทำการอ่านไฟล์ และแปลง (Transpile) โค้ด &amp;#039;&amp;#039;&amp;#039;JSX&amp;#039;&amp;#039;&amp;#039; ให้เป็น &amp;#039;&amp;#039;&amp;#039;Pure JavaScript&amp;#039;&amp;#039;&amp;#039; แบบ Real-time&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: ส่งไฟล์ JS ที่แปลงเสร็จแล้วกลับไปให้ Browser&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: ส่งไฟล์ JS ที่แปลงเสร็จแล้วกลับไปให้ Browser&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &amp;#039;&amp;#039;&amp;#039;Chain Reaction (ลูกโซ่):&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &amp;#039;&amp;#039;&amp;#039;Chain Reaction (ลูกโซ่):&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: ในไฟล์ main.jsx มักจะมีคำสั่ง &amp;lt;code&amp;gt;import App from &amp;#039;./App&amp;#039;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#: ในไฟล์ main.jsx มักจะมีคำสั่ง &amp;lt;code&amp;gt;import App from &amp;#039;./App&amp;#039;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jittat</name></author>
		
	</entry>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=Vite_for_react&amp;diff=59712&amp;oldid=prev</id>
		<title>Jittat เมื่อ 13:57, 1 มกราคม 2569</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=Vite_for_react&amp;diff=59712&amp;oldid=prev"/>
		<updated>2026-01-01T13:57:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://158.108.32.49/wiki/index.php?title=Vite_for_react&amp;amp;diff=59712&amp;amp;oldid=59711&quot;&gt;แสดงการเปลี่ยนแปลง&lt;/a&gt;</summary>
		<author><name>Jittat</name></author>
		
	</entry>
	<entry>
		<id>http://158.108.32.49/wiki/index.php?title=Vite_for_react&amp;diff=59711&amp;oldid=prev</id>
		<title>Jittat: สร้างหน้าด้วย &quot;: &#039;&#039;หน้านี้เป็นส่วนหนึ่งของวิชา 01204223&#039;&#039;  : &#039;&#039;หมายเหตุ: นำมาจาก...&quot;</title>
		<link rel="alternate" type="text/html" href="http://158.108.32.49/wiki/index.php?title=Vite_for_react&amp;diff=59711&amp;oldid=prev"/>
		<updated>2026-01-01T13:47:25Z</updated>

		<summary type="html">&lt;p&gt;สร้างหน้าด้วย &amp;quot;: &amp;#039;&amp;#039;หน้านี้เป็นส่วนหนึ่งของวิชา &lt;a href=&quot;/wiki/index.php/01204223&quot; class=&quot;mw-redirect&quot; title=&quot;01204223&quot;&gt;01204223&lt;/a&gt;&amp;#039;&amp;#039;  : &amp;#039;&amp;#039;หมายเหตุ: นำมาจาก...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;หน้าใหม่&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: &amp;#039;&amp;#039;หน้านี้เป็นส่วนหนึ่งของวิชา [[01204223]]&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
: &amp;#039;&amp;#039;หมายเหตุ: นำมาจากคำตอบของ Gemini&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== การทำงานเบื้องหลังของ Vite (How Vite Works) ==&lt;br /&gt;
Vite (อ่านว่า &amp;quot;วีท&amp;quot; มาจากภาษาฝรั่งเศสแปลว่า &amp;quot;เร็ว&amp;quot;) เปลี่ยนวิธีการเสิร์ฟ React Application โดยแบ่งกลยุทธ์การทำงานออกเป็น 2 ช่วงอย่างชัดเจน คือช่วง &amp;#039;&amp;#039;&amp;#039;Development&amp;#039;&amp;#039;&amp;#039; และช่วง &amp;#039;&amp;#039;&amp;#039;Production&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== 1. ในช่วง Development (The Dev Server) ===&lt;br /&gt;
เมื่อเราสั่งรัน &amp;lt;code&amp;gt;npm run dev&amp;lt;/code&amp;gt; Vite จะใช้วิธีการเสิร์ฟไฟล์แบบสมัยใหม่ที่แตกต่างจาก Webpack เดิม&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Native ESM (ECMAScript Modules):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** เบราว์เซอร์ยุคใหม่สามารถเข้าใจคำสั่ง &amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt; และ &amp;lt;code&amp;gt;export&amp;lt;/code&amp;gt; ได้ด้วยตัวเอง&lt;br /&gt;
** Vite จึงไม่ต้องเสียเวลา &amp;quot;มัดรวม&amp;quot; (Bundle) ไฟล์ทั้งโปรเจกต์ก่อนเริ่ม Server แต่จะเริ่ม Server ทันที&lt;br /&gt;
** เมื่อเบราว์เซอร์ต้องการไฟล์ใด (เช่น &amp;lt;code&amp;gt;App.jsx&amp;lt;/code&amp;gt;) เบราว์เซอร์จะส่ง Request ไปหา Vite จากนั้น Vite จะทำการแปลง (Compile) ไฟล์นั้นจาก JSX เป็น JavaScript มาตรฐาน แล้วส่งกลับไปให้เบราว์เซอร์ทันที (On-demand serving)&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Dependency Pre-bundling (ด้วย esbuild):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** สำหรับ Library ภายนอกที่ไม่ค่อยมีการเปลี่ยนแปลง (เช่น &amp;lt;code&amp;gt;react&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lodash&amp;lt;/code&amp;gt;) Vite จะทำการมัดรวมล่วงหน้า&lt;br /&gt;
** Vite ใช้เครื่องมือที่ชื่อว่า &amp;#039;&amp;#039;&amp;#039;esbuild&amp;#039;&amp;#039;&amp;#039; (เขียนด้วยภาษา Go ซึ่งทำงานเร็วกว่าเครื่องมือที่เขียนด้วย JS ถึง 10-100 เท่า)&lt;br /&gt;
** ขั้นตอนนี้ช่วยแปลง module แบบเก่า (CommonJS) ให้เป็น ESM ที่เบราว์เซอร์อ่านได้ และลดจำนวน HTTP requests&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;HMR (Hot Module Replacement):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** เมื่อมีการแก้ไขไฟล์ Vite จะคำนวณและส่งอัปเดตเฉพาะไฟล์ที่เปลี่ยนแปลงไปยังเบราว์เซอร์&lt;br /&gt;
** ทำให้การแก้ไขโค้ดแสดงผลแทบจะทันที ไม่ว่าแอปพลิเคชันจะมีขนาดใหญ่แค่ไหนก็ตาม&lt;br /&gt;
&lt;br /&gt;
=== 2. ในช่วง Production (The Build) ===&lt;br /&gt;
เมื่อเราสั่งรัน &amp;lt;code&amp;gt;npm run build&amp;lt;/code&amp;gt; Vite จะเปลี่ยนเครื่องมือในการทำงาน เพื่อให้ได้ไฟล์ที่มีประสิทธิภาพสูงสุดสำหรับผู้ใช้งานจริง&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bundling ด้วย Rollup:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** แม้ Native ESM จะดีสำหรับการพัฒนา แต่ในการใช้งานจริง การให้เบราว์เซอร์โหลดไฟล์ย่อยๆ จำนวนมากจะทำให้เว็บช้า (Waterfall effect)&lt;br /&gt;
** Vite จึงใช้ &amp;#039;&amp;#039;&amp;#039;Rollup&amp;#039;&amp;#039;&amp;#039; ในการมัดรวมโค้ด สร้างเป็น Static Assets (HTML, CSS, JS) ที่พร้อมใช้งาน&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Optimization Features:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Tree Shaking:&amp;#039;&amp;#039;&amp;#039; ตัดโค้ดส่วนเกินที่ไม่ได้ถูกเรียกใช้งานทิ้งไป เพื่อลดขนาดไฟล์&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Code Splitting:&amp;#039;&amp;#039;&amp;#039; แยกไฟล์ออกเป็นก้อนย่อยๆ (Chunks) เพื่อให้โหลดเฉพาะสิ่งที่จำเป็นสำหรับหน้านั้นๆ&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Minification:&amp;#039;&amp;#039;&amp;#039; บีบอัดไฟล์ให้มีขนาดเล็กที่สุด&lt;br /&gt;
&lt;br /&gt;
=== ตารางเปรียบเทียบ: Traditional Bundler (Webpack) vs Vite ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ขั้นตอน !! Traditional Bundler (Webpack) !! Vite&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;การเริ่ม Server&amp;#039;&amp;#039;&amp;#039; || ต้องสแกนแอปทั้งหมด &amp;gt; สร้าง Bundle &amp;gt; ถึงจะเริ่ม Server (ช้า) || เริ่ม Server ได้ทันที&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;การขอไฟล์ (Request)&amp;#039;&amp;#039;&amp;#039; || เสิร์ฟไฟล์ Bundle ก้อนใหญ่ที่สร้างเสร็จแล้ว || 1. เบราว์เซอร์ร้องขอไฟล์&amp;lt;br /&amp;gt;2. Vite แปลงไฟล์นั้น&amp;lt;br /&amp;gt;3. ส่งกลับ (ทำทีละไฟล์เมื่อถูกเรียก)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;เมื่อแก้ไขโค้ด&amp;#039;&amp;#039;&amp;#039; || ต้อง Re-bundle ส่วนที่เกี่ยวข้อง (ช้าลงเรื่อยๆ เมื่อแอปใหญ่ขึ้น) || แปลงใหม่เฉพาะไฟล์ที่แก้ (เร็วคงที่เสมอ)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== สิ่งที่สำคัญสำหรับ React ===&lt;br /&gt;
Vite มาพร้อมกับการรองรับ &amp;#039;&amp;#039;&amp;#039;React Fast Refresh&amp;#039;&amp;#039;&amp;#039; ซึ่งมีประโยชน์มาก:&lt;br /&gt;
* เมื่อแก้ไข Component (เช่น เปลี่ยนสี หรือแก้ Layout) หน้าเว็บจะอัปเดตทันที&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;State ไม่หาย:&amp;#039;&amp;#039;&amp;#039; ข้อมูลที่กรอกค้างไว้ในฟอร์ม หรือค่าตัวแปรต่างๆ จะยังคงอยู่ ไม่ถูกรีเซ็ตเหมือนการกด Refresh หน้าเว็บปกติ&lt;/div&gt;</summary>
		<author><name>Jittat</name></author>
		
	</entry>
</feed>