{"id":88893,"date":"2024-12-19T07:04:46","date_gmt":"2024-12-19T03:34:46","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/dont-fall-into-the-cdn-trap-4keg\/"},"modified":"2024-12-19T07:04:46","modified_gmt":"2024-12-19T03:34:46","slug":"dont-fall-into-the-cdn-trap-4keg","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/dont-fall-into-the-cdn-trap-4keg\/","title":{"rendered":"\u062f\u0631 \u062f\u0627\u0645 CDN \u0646\u06cc\u0641\u062a\u06cc\u062f! \ud83e\udea4"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n              \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0686\u06af\u0648\u0646\u06af\u06cc \u0622\u0646 \u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u062f \u062c\u0631\u06cc\u0627\u0646 HTML Brisa \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u06a9\u0646\u062f \u0627\u0632 \u062a\u0644\u0647 CDN \u0627\u062c\u062a\u0646\u0627\u0628 \u06a9\u0646\u06cc\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u062f. \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 Brisa \u0631\u0627 \u0628\u0627 \u0633\u0627\u06cc\u0631 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u062d\u0628\u0648\u0628 \u0645\u0627\u0646\u0646\u062f \u0645\u0642\u0627\u06cc\u0633\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f HTMX \u0648 \u0648\u0627\u06a9\u0646\u0634 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f \u0628\u0631\u0627\u06cc \u0628\u0631\u062c\u0633\u062a\u0647 \u06a9\u0631\u062f\u0646 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Brisa \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0633\u0645\u062a \u0633\u0631\u0648\u0631.<\/p>\n<p>  \u0686\u0631\u0627 \u062c\u0631\u06cc\u0627\u0646 HTML \u0645\u0647\u0645 \u0627\u0633\u062a<\/p>\n<p>HTML Streaming \u06cc\u06a9 \u062a\u06a9\u0646\u06cc\u06a9 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0627\u0631\u0633\u0627\u0644 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f HTML \u0628\u0647 \u0635\u0648\u0631\u062a \u062a\u062f\u0631\u06cc\u062c\u06cc \u0627\u0632 \u0633\u0631\u0648\u0631 \u0628\u0647 \u0645\u0634\u062a\u0631\u06cc\u060c \u0628\u0647\u0628\u0648\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u06a9\u0627\u0647\u0634 \u062a\u0627\u062e\u06cc\u0631. \u0628\u0627 Brisa\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u062d\u062a\u0648\u0627\u06cc HTML \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u067e\u062e\u0634 \u06a9\u0646\u06cc\u062f\u060c \u0646\u0647 \u062a\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0627\u0648\u0644\u06cc\u0647\u060c \u0628\u0644\u06a9\u0647 \u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0648 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0631\u0648\u0631.<\/p>\n<p>\u0627\u06af\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0641\u0642\u0637 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f 1 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0631\u0627\u06cc \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631\u060c \u062f\u0631 \u0622\u0646 \u06af\u06cc\u0631 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u062a\u0644\u0647 CDN. \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0648 \u062f\u0631 \u06cc\u06a9 \u06a9\u0627\u0628\u0648\u0633 \u0622\u0628\u0634\u0627\u0631\u06cc \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u06cc\u062f. CDN \u0647\u0627 \u0628\u0631\u0627\u06cc \u062f\u0627\u0631\u0627\u06cc\u06cc \u0647\u0627 \u062e\u0648\u0628 \u0647\u0633\u062a\u0646\u062f &#8211; \u0646\u0647 \u0628\u06cc\u0634\u062a\u0631. \u0648\u0628 \u0633\u0627\u06cc\u062a \u0634\u0645\u0627 \u0641\u0642\u0637 \u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u062f\u0627\u0631\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0645\u062a\u06a9\u06cc \u0646\u0628\u0627\u0634\u062f. <\/p>\n<p>\u0631\u0646\u062f\u0631\u06cc\u0646\u06af \u0627\u062c\u0632\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0633\u0631\u0648\u0631 \u0628\u0627 \u062c\u0631\u06cc\u0627\u0646 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0627\u0647 \u0628\u0631\u0627\u06cc \u0627\u0632 \u062a\u0644\u0647 CDN \u0627\u062c\u062a\u0646\u0627\u0628 \u06a9\u0646\u06cc\u062f. Brisa \u0646\u0647 \u062a\u0646\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u062c\u0631\u06cc\u0627\u0646 HTML \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0631\u0646\u062f\u0631 \u0628\u0644\u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0627\u0633\u062e\u06cc \u0628\u0647 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u067e\u0633 \u0627\u0632 \u0631\u0646\u062f\u0631 \u06a9\u0631\u062f\u0646 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062f\u0631 \u0633\u0631\u0648\u0631<\/p>\n<p>\u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062a\u0639\u062c\u0628 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0645\u0627 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u062b\u0627\u0628\u062a \u0647\u0633\u062a\u0646\u062f \u0648 \u0645\u0646 \u0646\u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u0645 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0647\u0645\u06cc\u0634\u0647 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0631\u0646\u062f\u0631 \u06a9\u0646\u0645. \u062e\u0648\u0628\u060c \u0628\u0631\u06cc\u0633\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0633\u0627\u062e\u062a \u0627\u0632 \u0642\u0628\u0644 \u0631\u0646\u062f\u0631 \u06a9\u0646\u06cc\u062f \u0641\u0642\u0637 \u0628\u0627 \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc\u060c \u0628\u0647 \u0637\u0648\u0631\u06cc \u06a9\u0647 \u0641\u0642\u0637 \u0627\u062c\u0632\u0627\u06cc \u067e\u0648\u06cc\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u0631\u0648\u06cc \u0633\u0631\u0648\u0631<\/p>\n<p>&lt;StaticComponent renderOn=&#8221;build&#8221; \/&gt;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0622\u06cc\u0627 \u0648\u0627\u0631\u062f\u0627\u062a \u067e\u0648\u06cc\u0627 \u062a\u0644\u0647 CDN \u0631\u0627 \u062d\u0644 \u0645\u06cc \u06a9\u0646\u062f\u061f<\/p>\n<p>\u062e\u06cc\u0631. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 HTML Streaming \u062f\u0631 Server Actions \u062f\u0642\u06cc\u0642\u0627\u064b \u0647\u0645\u0627\u0646 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u062f\u0631 \u0627\u0648\u0644\u06cc\u0646 \u0631\u0646\u062f\u0631 \u0631\u0627 \u062f\u0627\u0631\u062f.<\/p>\n<p>\u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0648 \u0627\u0631\u0627\u0626\u0647 \u0627\u0632 \u06cc\u06a9 \u06af\u0641\u062a\u06af\u0648 \u0628\u0627 \u06cc\u06a9 \u0648\u0627\u0631\u062f\u0627\u062a \u067e\u0648\u06cc\u0627:<\/p>\n<p>\u0641\u0642\u0637 \u0627\u06af\u0631 \u062f\u06cc\u0627\u0644\u0648\u06af \u0628\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0645\u0627 \u062f\u0631 \u0647\u0645\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0647\u0633\u062a\u06cc\u0645.<\/p>\n<p>  \u0645\u062b\u0627\u0644 \u06a9\u062f: \u0622\u0632\u0645\u0648\u0646 \u0628\u0627 \u062c\u0631\u06cc\u0627\u0646 HTML<\/p>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0627 \u062f\u0631 Brisa \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 HTML Streaming \u0627\u0632 \u0637\u0631\u06cc\u0642 Server Actions \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u06cc\u06a9 \u0645\u0633\u0627\u0628\u0642\u0647 \u0633\u0648\u0627\u0644\u0627\u062a \u0631\u0627 \u062f\u0631 Brisa \u0628\u0633\u0627\u0632\u06cc\u0645 \u0648 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f \u06a9\u0647 \u0627\u0646\u062c\u0627\u0645 \u0622\u0646 \u062c\u062f\u0627 \u0627\u0632 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0622\u0646 \u0686\u0642\u062f\u0631 \u0622\u0633\u0627\u0646 \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u0633\u0627\u0628\u0642\u0647\u060c \u0645\u0627 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u06cc\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0631\u0646\u062f\u0631 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u0631\u0633\u0634 \u0648 \u067e\u0627\u0633\u062e \u0631\u0627 \u0628\u0631 \u0639\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a. \u0633\u0648\u0627\u0644\u0627\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642 HTML Streaming \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f \u0648 \u067e\u0627\u0633\u062e \u0647\u0627 \u062f\u0631 \u0633\u0631\u0648\u0631 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>import { renderComponent } from &#8216;brisa\/server&#8217;;<\/p>\n<p>\/\/ Define the type for questions to ensure type safety.<br \/>\ntype Question = {<br \/>\n  answer: string; \/\/ The correct answer for the question (&#8216;yes&#8217; or &#8216;no&#8217;).<br \/>\n  question: string; \/\/ The text of the question to be displayed.<br \/>\n  id: number; \/\/ Unique identifier for each question.<br \/>\n};<\/p>\n<p>\/\/ All this code is server-code. It ensures that the user cannot infer the correct<br \/>\n\/\/ answers by inspecting the page source or the network.<br \/>\nconst questions: Question[] = [<br \/>\n  { id: 1, answer: &#8216;no&#8217;, question: &#8216;Is the Earth flat? &#8216; },<br \/>\n  { id: 2, answer: &#8216;yes&#8217;, question: &#8216;Is the Earth round? &#8216; },<br \/>\n  { id: 3, answer: &#8216;no&#8217;, question: &#8216;Can giraffes lay eggs?&#8217; },<br \/>\n  { id: 4, answer: &#8216;yes&#8217;, question: &#8216;Can penguins fly?&#8217; },<br \/>\n  { id: 5, answer: &#8216;no&#8217;, question: &#8216;Can a cow jump over the moon?&#8217; },<br \/>\n  { id: 6, answer: &#8216;yes&#8217;, question: &#8216;Is water wet by definition?&#8217; },<br \/>\n  { id: 7, answer: &#8216;yes&#8217;, question: &#8216;Is the sky blue?&#8217; },<br \/>\n  { id: 8, answer: &#8216;yes&#8217;, question: &#8216;Do fish sleep with their eyes open?&#8217; },<br \/>\n  { id: 9, answer: &#8216;no&#8217;, question: &#8216;Can a cow fly?&#8217; },<br \/>\n];<\/p>\n<p>\/\/ Function to open the modal with a random question.<br \/>\nfunction openModal() {<br \/>\n  const randomIndex = Math.floor(Math.random() * questions.length);<\/p>\n<p>  renderComponent({<br \/>\n    element: &lt;Modal {&#8230;questions[randomIndex]} \/&gt;,<br \/>\n    target: &#8216;#content&#8217;, \/\/ Specify the DOM element where the modal should render.<br \/>\n  });<br \/>\n}<\/p>\n<p>\/\/ Function to process the user\u2019s answer and display the result.<br \/>\nfunction processAnswer(e: ClickEvent, value = &#8216;yes&#8217;) {<br \/>\n  \/\/ We have the event on the server, so we can access the target and the dataset!<br \/>\n  const id = (e.target as HTMLButtonElement).dataset.id;<\/p>\n<p>  \/\/ Check if the user&#8217;s answer matches the correct answer.<br \/>\n  const isCorrect = questions.find((q) =&gt; q.id === Number(id)).answer === value;<\/p>\n<p>  \/\/ Render feedback based on the correctness of the answer.<br \/>\n  renderComponent({<br \/>\n    element: isCorrect ? (<br \/>\n      &lt;p id=&#8221;content&#8221; class=&#8221;correct&#8221;&gt;<br \/>\n        Correct!<br \/>\n      p&gt;<br \/>\n    ) : (<br \/>\n      &lt;p id=&#8221;content&#8221; class=&#8221;incorrect&#8221;&gt;<br \/>\n        Incorrect!<br \/>\n      p&gt;<br \/>\n    ),<br \/>\n    target: &#8216;dialog&#8217;,<br \/>\n  });<br \/>\n}<\/p>\n<p>\/\/ Main homepage component.<br \/>\nexport default function Homepage() {<br \/>\n  return (<br \/>\n    &lt;&gt;<br \/>\n      &lt;div class=&#8221;hero&#8221;&gt;<br \/>\n        &lt;h1&gt;<br \/>\n          &lt;span class=&#8221;h1_addition&#8221;&gt;Welcome to span&gt;Brisa<br \/>\n        h1&gt;<br \/>\n        &lt;p class=&#8221;edit-note&#8221;&gt;\u270f\ufe0f SSR Modal examplep&gt;<br \/>\n        &lt;code&gt;src\/pages\/index.tsxcode&gt;<br \/>\n      div&gt;<\/p>\n<p>      &lt;form onSubmit={openModal}&gt;<br \/>\n        &lt;button&gt;Open modalbutton&gt;<br \/>\n        &lt;div id=&#8221;content&#8221; \/&gt; {\/* Container for rendering dynamic content *\/}<br \/>\n      form&gt;<br \/>\n    &gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>\/\/ Modal component to display a question and answer options.<br \/>\nfunction Modal({ question, answer, id }: Question) {<br \/>\n  return (<br \/>\n    &lt;dialog open&gt;<br \/>\n      &lt;form method=&#8221;dialog&#8221;&gt;<br \/>\n        &lt;h2&gt;{question}h2&gt;<br \/>\n        {\/* Button for &#8220;Yes&#8221; answer *\/}<br \/>\n        &lt;button data-id={id} onClick={(e) =&gt; processAnswer(e, &#8216;yes&#8217;)}&gt;<br \/>\n          Yes<br \/>\n        button&gt;<br \/>\n        {\/* Button for &#8220;No&#8221; answer *\/}<br \/>\n        &lt;button data-id={id} onClick={(e) =&gt; processAnswer(e, &#8216;no&#8217;)}&gt;<br \/>\n          No<br \/>\n        button&gt;<br \/>\n      form&gt;<br \/>\n    dialog&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0646\u0637\u0642 \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u062f\u06cc\u0627\u0644\u0648\u06af\u060c \u0627\u0645\u0646\u06cc\u062a \u0648 \u0633\u0627\u062f\u06af\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0622\u0646 \u0627\u0633\u062a. \u0628\u0627 Brisa\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u067e\u0631\u062f\u0627\u0632\u0634\u200c\u0647\u0627\u06cc \u0631\u0646\u062f\u0631 \u0648 \u0645\u0646\u0637\u0642\u06cc \u0631\u0627 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u062d\u06cc\u0627\u062a\u06cc \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u063a\u06cc\u0631\u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u0646\u062f \u0648 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u062f\u0642\u06cc\u0642 \u0646\u06af\u0631\u0627\u0646\u06cc\u200c\u0647\u0627 \u062d\u0641\u0638 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u06cc\u06a9 \u06af\u0641\u062a\u06af\u0648\u06cc \u0645\u0648\u062f\u0627\u0644 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0633\u0648\u0627\u0644\u0627\u062a \u0645\u0633\u0627\u0628\u0642\u0647 \u062a\u0635\u0627\u062f\u0641\u06cc \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f. \u0645\u0646\u0637\u0642 \u0627\u0646\u062a\u062e\u0627\u0628 \u0633\u0648\u0627\u0644\u060c \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u067e\u0627\u0633\u062e \u0648 \u0631\u0646\u062f\u0631 \u06a9\u0631\u062f\u0646 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062e\u0637\u0631 \u0627\u0641\u0634\u0627\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062d\u0633\u0627\u0633 \u0645\u0627\u0646\u0646\u062f \u067e\u0627\u0633\u062e \u0635\u062d\u06cc\u062d \u0631\u0627 \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u0645\u0634\u062a\u0631\u06cc \u0627\u0632 \u0628\u06cc\u0646 \u0645\u06cc \u0628\u0631\u062f.<\/p>\n<p>\u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0645\u0627 \u0645\u062f\u0627\u0644\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u0648\u0627\u0631\u062f\u0627\u062a \u067e\u0648\u06cc\u0627 \u0631\u0648\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0627\u0632 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0622\u0646\u200c\u0647\u0627 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627\u060c \u062f\u0631\u062e\u0648\u0627\u0633\u062a CDN \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645\u060c \u0648 \u0633\u067e\u0633 \u0627\u06af\u0631 \u0645\u062f\u0627\u0644 \u0628\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f\u060c \u067e\u0633 \u0627\u0632 \u0631\u0646\u062f\u0631 \u0634\u062f\u0646 \u0628\u0627\u06cc\u062f \u0622\u0628\u0634\u0627\u0631\u06cc \u0627\u0632 \u062a\u0645\u0627\u0633\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0633\u0631\u0648\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u062f. \u0628\u0627 Brisa\u060c \u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u062f\u0627\u0644 \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0627\u0632 \u0633\u0631\u0648\u0631 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0627\u0632 \u0628\u0631\u0642\u0631\u0627\u0631\u06cc \u062a\u0645\u0627\u0633\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u0627\u062c\u062a\u0646\u0627\u0628 \u06a9\u0646\u06cc\u0645 \u0648 \u0645\u0646\u0637\u0642 \u0645\u062f\u0627\u0644 \u0631\u0627 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u062d\u0641\u0638 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f\u060c \u0645\u0627 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<p>\u0627\u0645\u0646\u06cc\u062a \u067e\u06cc\u0634\u0631\u0641\u062a\u0647: \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062d\u0633\u0627\u0633\u060c \u0645\u0627\u0646\u0646\u062f \u067e\u0627\u0633\u062e \u0647\u0627\u06cc \u0635\u062d\u06cc\u062d\u060c \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0628\u0627\u0642\u06cc \u0645\u06cc \u0645\u0627\u0646\u0646\u062f \u0648 \u0627\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u06cc\u0627 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u063a\u06cc\u0631\u0645\u062c\u0627\u0632 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<p>UX \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u06cc\u062f: \u0628\u0627 \u0631\u0646\u062f\u0631 \u06a9\u0631\u062f\u0646 \u0645\u0648\u062f\u0627\u0644 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0628\u0627 \u0627\u0633\u062a\u0631\u06cc\u0645\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0634\u0628\u06a9\u0647 \u0627\u0636\u0627\u0641\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0647 \u0644\u0637\u0641 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0628\u0647\u0628\u0648\u062f \u0628\u0628\u062e\u0634\u06cc\u0645.<\/p>\n<p>\u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0648\u0644\u062a\u06cc \u0633\u0627\u062f\u0647 \u0634\u062f\u0647:  \u0628\u0627 \u0645\u062a\u0645\u0631\u06a9\u0632 \u06a9\u0631\u062f\u0646 \u0645\u0646\u0637\u0642 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631\u060c \u06a9\u0644\u0627\u06cc\u0646\u062a \u0633\u0628\u06a9 \u0648\u0632\u0646 \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u062f \u0648 \u0641\u0642\u0637 \u0628\u0631 \u0631\u0648\u06cc \u0631\u0646\u062f\u0631 \u0648 \u062a\u0639\u0627\u0645\u0644 \u06a9\u0627\u0631\u0628\u0631 \u062a\u0645\u0631\u06a9\u0632 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u06a9\u0627\u0647\u0634 \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0648 \u0627\u0646\u062f\u0627\u0632\u0647 \u0633\u0645\u062a \u0645\u0634\u062a\u0631\u06cc: \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u06cc\u0627 \u0645\u0646\u0637\u0642 \u0627\u0636\u0627\u0641\u06cc \u0633\u0645\u062a \u0645\u0634\u062a\u0631\u06cc \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062f\u0627\u0644. \u0633\u0631\u0648\u0631 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 SPA \u0631\u0627 \u0628\u062f\u0648\u0646 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0627\u0646\u062f\u0627\u0632\u0647 \u0628\u0633\u062a\u0647 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631\u06cc \u0645\u0634\u062a\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/p>\n<p>  SPA \u0628\u062f\u0648\u0646 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u0645\u0634\u062a\u0631\u06cc\u061f<\/p>\n<p>\u0628\u0644\u0647\u060c \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f! \u0627\u06af\u0631\u0686\u0647 \u0645\u0627 \u0627\u0632 \u0646\u0648\u0634\u062a\u0646 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627\u06cc \u0648\u0628 \u0628\u0627 \u0622\u0646 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 JSX \u0648 \u0633\u06cc\u06af\u0646\u0627\u0644 \u0647\u0627 \u0628\u0627 \u06a9\u062f \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0645 (3 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a)\u060c \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u062e\u0627\u0644\u0635 \u062a\u0639\u0627\u0645\u0644\u0627\u062a \u0645\u0634\u062a\u0631\u06cc. \u0645\u0627 \u0647\u062f\u0641 \u0627\u06cc\u062c\u0627\u062f \u0627\u0645\u06a9\u0627\u0646 \u067e\u0630\u06cc\u0631 \u0627\u0633\u062a \u0622\u0628\u06af\u0631\u0645 \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a.<\/p>\n<p>\u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0634\u0645\u0627 \u062a\u062c\u0627\u0631\u062a \u0627\u0644\u06a9\u062a\u0631\u0648\u0646\u06cc\u06a9 \u0633\u0627\u06cc\u062a\u060c \u0628\u0647 \u062c\u0627\u06cc \u062f\u0627\u0634\u062a\u0646 \u06cc\u06a9 \u0622\u0628\u0634\u0627\u0631 \u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627 \u0648 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u06a9\u062f \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a \u06a9\u0647 \u0622\u0633\u06cc\u0628 \u0645\u06cc \u0631\u0633\u0627\u0646\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc\u060c \u062a\u0628\u062f\u06cc\u0644 \u0628\u0647 a \u0645\u06cc \u0634\u0648\u062f \u0622\u0628\u06af\u0631\u0645 \u0628\u062f\u0648\u0646 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a\u060c \u0632\u06cc\u0631\u0627 \u0628\u06cc\u0634\u062a\u0631 \u062a\u0639\u0627\u0645\u0644\u0627\u062a\u06cc \u06a9\u0647 \u0628\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u0646\u062f \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc \u0634\u0648\u062f. <\/p>\n<p>\u0631\u0646\u062f\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0628\u0633\u06cc\u0627\u0631 \u0627\u0633\u062a \u0627\u0631\u0632\u0627\u0646 \u0648 \u0633\u0631\u06cc\u0639 (~ 10 \u0645\u06cc\u0644\u06cc \u062b\u0627\u0646\u06cc\u0647)! <\/p>\n<p>\u0627\u0631\u0632\u0627\u0646 \u0648 \u0633\u0631\u06cc\u0639<\/p>\n<p>  \u062a\u06a9\u0647 \u0647\u0627\u06cc \u062c\u0631\u06cc\u0627\u0646 \u0631\u0627 \u0628\u0627 Async Generators \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f<\/p>\n<p>Brisa \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f \u062a\u06a9\u0647 \u0647\u0627\u06cc \u062c\u0631\u06cc\u0627\u0646 \u0628\u0627 \u0698\u0646\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc Async. \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062c\u0631\u06cc\u0627\u0646 \u0631\u0627 HTML \u062f\u0631 \u062a\u06a9\u0647 \u0647\u0627 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f \u0631\u0627 \u062c\u0631\u06cc\u0627\u0646 \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646.<\/p>\n<p>import { Database } from &#8220;bun:sqlite&#8221;;<br \/>\nimport { renderComponent } from &#8220;brisa\/server&#8221;;<\/p>\n<p>export default function LoadMovies() {<br \/>\n  function streamMovies() {<br \/>\n    renderComponent({<br \/>\n      element: &lt;MovieItems \/&gt;,<br \/>\n      target: &#8220;ul&#8221;,<br \/>\n      placement: &#8220;append&#8221;,<br \/>\n    });<br \/>\n  }<\/p>\n<p>  return (<br \/>\n    &lt;&gt;<br \/>\n      &lt;button id=&#8221;movies&#8221; onClick={streamMovies}&gt;<br \/>\n        Click here to stream movies from a Server Action<br \/>\n      button&gt;<br \/>\n      &lt;ul \/&gt;<br \/>\n    &gt;<br \/>\n  )<br \/>\n}<\/p>\n<p>const db = new Database(&#8220;db.sqlite&#8221;);<\/p>\n<p>async function* MovieItems() {<br \/>\n  for (const movie of db.query(&#8220;SELECT title, year FROM movies&#8221;)) {<br \/>\n    yield (<br \/>\n      &lt;li&gt;<br \/>\n        {movie.title} ({movie.year})<br \/>\n      li&gt;<br \/>\n    );<br \/>\n  }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0627 \u0627\u0632 \u06cc\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 Async Generator \u0628\u0647 \u062c\u0631\u06cc\u0627\u0646 \u0641\u06cc\u0644\u0645 \u0647\u0627\u06cc \u0627\u0644\u0641 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 SQLite. \u0647\u0631 yield \u06cc\u06a9 \u062a\u06a9\u0647 \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>  \u0686\u06cc\u0633\u062a renderComponent?<\/p>\n<p>\u0628\u0631\u06cc\u0633\u0627 renderComponent \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f:<\/p>\n<p>\u0645\u0648\u0644\u0641\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0648\u06cc\u0627 \u062f\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0631\u0646\u062f\u0631 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u0648\u0644\u0641\u0647 \u0647\u0627\u06cc \u062e\u0627\u0635 \u0631\u0627 \u0628\u0647 \u0645\u06a9\u0627\u0646 \u0647\u0627\u06cc \u062e\u0627\u0635 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u06cc\u062f \u062f\u0631 DOM<\/p>\n<p>\u0646\u062d\u0648\u0647 \u0648 \u0645\u06a9\u0627\u0646 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u060c \u0627\u0644\u062d\u0627\u0642\u060c \u0642\u0628\u0644\u060c \u0628\u0639\u062f \u0648 \u0642\u0628\u0644).<\/p>\n<p>\u0627\u0641\u0632\u0627\u06cc\u0634 \u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u0627 View Transition API.<\/p>\n<p>\u062c\u0631\u06cc\u0627\u0646 \u0627\u062c\u0632\u0627\u06cc JSX \u0628\u0647 \u0635\u0648\u0631\u062a \u062a\u062f\u0631\u06cc\u062c\u06cc \u0627\u0632 \u0633\u0631\u0648\u0631<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u06af\u0627\u0647 \u0633\u0631\u06cc\u0639 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<p>export default function MyComponent({ text = &#8220;foo&#8221; }: { text: string }) {<br \/>\n  function handleClick() {<br \/>\n    \/\/ Re-render the same component<br \/>\n    renderComponent();<\/p>\n<p>    \/\/ Re-render with new props<br \/>\n    renderComponent({ element: &lt;MyComponent text=&#8221;bar&#8221; \/&gt; });<\/p>\n<p>    \/\/ Render another Component to a specific location<br \/>\n    renderComponent({<br \/>\n      element: &lt;AnotherComponent \/&gt;,<br \/>\n      target: &#8220;#target-id&#8221;,<br \/>\n      placement: &#8220;append&#8221;,<br \/>\n      withTransition: true, \/\/ Enhance transitions with the View Transition API<br \/>\n    });<br \/>\n  }<\/p>\n<p>  return (<br \/>\n    &lt;div&gt;<br \/>\n      &lt;button onClick={handleClick}&gt;{text}button&gt;<br \/>\n    div&gt;<br \/>\n  );<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0647\u0645\u0647 \u0627\u06cc\u0646 \u06a9\u062f\u0647\u0627 \u06a9\u062f\u0647\u0627\u06cc \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u0647\u0633\u062a\u0646\u062f. \u062f\u0631 Brisa\u060c \u062a\u0645\u0627\u0645 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u0633\u0631\u0648\u0631\u060c \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>  \u0686\u0631\u0627 \u0627\u06cc\u0646 \u06cc\u06a9 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u0646\u062f\u0647 \u0628\u0627\u0632\u06cc \u0627\u0633\u062a\u061f<\/p>\n<p>\u0631\u0648\u06cc\u06a9\u0631\u062f Brisa \u0628\u0647 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0627\u0632 \u0645\u062f\u0644 React \u0648 \u0645\u0641\u0627\u0647\u06cc\u0645 HTMX \u0627\u0644\u0647\u0627\u0645 \u06af\u0631\u0641\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0628\u0647 \u06af\u0648\u0646\u0647 \u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0633\u0627\u062f\u0647 \u062a\u0631 \u0648 \u0630\u0627\u062a\u0627 \u0627\u0645\u0646 \u062a\u0631 \u0628\u0627\u0634\u062f.<\/p>\n<p>  \u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 HTMX<\/p>\n<p>HTMX \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0648\u06cc\u0627 \u0628\u062e\u0634 \u0647\u0627\u06cc\u06cc \u0627\u0632 DOM \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u067e\u0627\u0633\u062e \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u0646\u062f. \u0627\u0645\u0627 \u0641\u0627\u0642\u062f:<\/p>\n<p>\u062f\u0627\u0646\u0647 \u0628\u0646\u062f\u06cc \u062f\u0631 \u0633\u0637\u062d \u0645\u0624\u0644\u0641\u0647: HTMX \u0628\u0631 \u067e\u0627\u0631\u0647 \u0647\u0627\u06cc HTML \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0633\u0631\u0648\u0631 \u0628\u062f\u0648\u0646 \u0645\u0641\u0647\u0648\u0645 \u0627\u062c\u0632\u0627\u0621 \u0645\u062a\u06a9\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646: HTMX \u0628\u0637\u0648\u0631 \u0628\u0648\u0645\u06cc \u0627\u0632 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0647\u0627\u06cc \u062c\u0631\u06cc\u0627\u0646\u06cc \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u0646\u062f\u0627\u0632\u0647 \u0628\u0633\u062a\u0647: HTMX \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 14 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a\u06cc \u0627\u0633\u062a\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 Brisa \u062a\u0646\u0647\u0627 2 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0627 renderComponent\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<p>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 \u0645\u0648\u0644\u0641\u0647: \u0627\u062c\u0632\u0627\u06cc Brisa \u0628\u0647 \u0637\u0648\u0631 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u062f\u0648\u0628\u0627\u0631\u0647 \u0631\u0646\u062f\u0631 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u0627\u0632 \u062a\u0631\u06a9\u06cc\u0628 JSX \u0648 React \u0645\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0642\u0631\u0627\u0631\u06af\u06cc\u0631\u06cc \u067e\u0648\u06cc\u0627: \u0627\u062c\u0632\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 DOM \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06cc\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646: \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646 \u0647\u0627\u06cc \u0633\u0645\u062a \u0633\u0631\u0648\u0631\u060c \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062a\u062f\u0631\u06cc\u062c\u06cc \u0627\u0631\u0633\u0627\u0644 \u0648 \u0631\u0646\u062f\u0631 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u0628\u0631\u06cc\u0633\u0627 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u0648\u0627\u06a9\u0646\u0634<\/p>\n<p>\u062f\u0631 \u0648\u0627\u06a9\u0646\u0634 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f\u060c \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0627\u063a\u0644\u0628 \u0634\u0627\u0645\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f &#8220;use server&#8221; \u0648 &#8220;use client&#8221; \u0628\u062e\u0634\u0646\u0627\u0645\u0647 \u0647\u0627 \u0627\u06cc\u0646 \u0645\u062f\u0644 \u062f\u0648\u06af\u0627\u0646\u0647 \u067e\u062a\u0627\u0646\u0633\u06cc\u0644 \u062e\u0637\u0627\u06cc \u0627\u0646\u0633\u0627\u0646\u06cc \u0631\u0627 \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0646\u0627\u062e\u0648\u0627\u0633\u062a\u0647 \u0645\u0624\u0644\u0641\u0647\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0645\u0639\u0631\u0636 \u062f\u06cc\u062f \u0645\u0634\u062a\u0631\u06cc \u0642\u0631\u0627\u0631 \u062f\u0647\u062f. <\/p>\n<p>\u0645\u062a\u0645\u0627\u06cc\u0632 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0639\u0628\u0627\u0631\u062a\u0646\u062f \u0627\u0632:<\/p>\n<p>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646 HTML: React \u0628\u0627 \u0627\u0631\u0633\u0627\u0644 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u06cc\u0646 \u0633\u0631\u0648\u0631 \u0648 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0633\u0631\u0628\u0627\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u062f. \u0628\u0631\u0639\u06a9\u0633\u060c Brisa HTML \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u067e\u062e\u0634 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc \u0628\u062e\u0634\u062f.<\/p>\n<p>\u0633\u06cc\u06af\u0646\u0627\u0644 \u0647\u0627 &#8211; \u0648\u0627\u06a9\u0646\u0634 \u0631\u06cc\u0632 \u062f\u0627\u0646\u0647: \u0633\u06cc\u06af\u0646\u0627\u0644 \u0647\u0627\u06cc \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a Brisa \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u0628\u0627 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627\u06cc \u0648\u0628 \u0648\u0627\u06a9\u0646\u0634 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u0646\u062f \u0648 \u0627\u0632 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0631\u0646\u062f\u0631 \u0645\u062c\u062f\u062f \u06a9\u0627\u0645\u0644 \u0627\u062c\u062a\u0646\u0627\u0628 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0627\u0646\u062f\u0627\u0632\u0647 \u0628\u0633\u062a\u0647: React-DOM \u0646\u0633\u062e\u0647 19 \u062d\u062f\u0648\u062f 200 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a \u0648\u0632\u0646 \u062f\u0627\u0631\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 Brisa \u062f\u0627\u0631\u0627\u06cc \u0631\u062f\u067e\u0627\u06cc\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0633\u0628\u06a9 \u0648\u0632\u0646 \u062a\u0646\u0647\u0627 2 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0647\u0627\u06cc \u0627\u0646\u062a\u062e\u0627\u0628\u06cc: Brisa \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0627\u062c\u0632\u0627\u06cc \u062e\u0627\u0635\u06cc \u0631\u0627 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u062c\u062f\u062f \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0647\u06cc\u062f.<\/p>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/p>\n<p>Brisa&#39;s HTML Streaming \u0627\u0632 \u062a\u0644\u0647 CDN \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc \u0628\u062e\u0634\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u062d\u062a\u0648\u0627\u06cc HTML \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0627\u0648\u0644\u06cc\u0647\u060c \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0648 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0628\u0647 \u0645\u0634\u062a\u0631\u06cc \u067e\u062e\u0634 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0627\u0645\u0646\u06cc\u062a \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc \u0628\u062e\u0634\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0627\u0644\u062a \u0631\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u06af\u0632\u06cc\u0646\u0647 \u0627\u06cc \u0627\u06cc\u062f\u0647 \u0622\u0644 \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0648\u0628 \u0633\u0631\u06cc\u0639\u060c \u0627\u06cc\u0645\u0646 \u0648 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0647\u0633\u062a\u06cc\u062f\u060c \u0627\u0645\u0631\u0648\u0632 Brisa \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f!<\/p>\n<p>\u0627\u0632 \u0645\u0627 \u062d\u0645\u0627\u06cc\u062a \u06a9\u0646\u06cc\u062f: \u0628\u0631\u0627\u06cc \u062e\u0631\u06cc\u062f \u0633\u0648\u0627\u06af \u0628\u0631\u06cc\u0633\u0627 \u0627\u0632 \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0645\u0627 \u062f\u06cc\u062f\u0646 \u06a9\u0646\u06cc\u062f! \ud83d\udecd\ufe0f<\/p>\n<div data-article-id=\"2164055\" id=\"article-body\">\n<p>\u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0686\u06af\u0648\u0646\u06af\u06cc \u0622\u0646 \u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u062f <strong>\u062c\u0631\u06cc\u0627\u0646 HTML Brisa<\/strong> \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u06a9\u0646\u062f \u0627\u0632 \u062a\u0644\u0647 CDN \u0627\u062c\u062a\u0646\u0627\u0628 \u06a9\u0646\u06cc\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u062f. \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 Brisa \u0631\u0627 \u0628\u0627 \u0633\u0627\u06cc\u0631 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u062d\u0628\u0648\u0628 \u0645\u0627\u0646\u0646\u062f \u0645\u0642\u0627\u06cc\u0633\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f <strong>HTMX<\/strong> \u0648 <strong>\u0648\u0627\u06a9\u0646\u0634 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f<\/strong> \u0628\u0631\u0627\u06cc \u0628\u0631\u062c\u0633\u062a\u0647 \u06a9\u0631\u062f\u0646 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Brisa \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0633\u0645\u062a \u0633\u0631\u0648\u0631.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/dont-fall-into-the-cdn-trap-4keg\/#%DA%86%D8%B1%D8%A7_%D8%AC%D8%B1%DB%8C%D8%A7%D9%86_HTML_%D9%85%D9%87%D9%85_%D8%A7%D8%B3%D8%AA\" >\u0686\u0631\u0627 \u062c\u0631\u06cc\u0627\u0646 HTML \u0645\u0647\u0645 \u0627\u0633\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/dont-fall-into-the-cdn-trap-4keg\/#%D8%A2%DB%8C%D8%A7_%D9%88%D8%A7%D8%B1%D8%AF%D8%A7%D8%AA_%D9%BE%D9%88%DB%8C%D8%A7_%D8%AA%D9%84%D9%87_CDN_%D8%B1%D8%A7_%D8%AD%D9%84_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\" >\u0622\u06cc\u0627 \u0648\u0627\u0631\u062f\u0627\u062a \u067e\u0648\u06cc\u0627 \u062a\u0644\u0647 CDN \u0631\u0627 \u062d\u0644 \u0645\u06cc \u06a9\u0646\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/dont-fall-into-the-cdn-trap-4keg\/#%D9%85%D8%AB%D8%A7%D9%84_%DA%A9%D8%AF_%D8%A2%D8%B2%D9%85%D9%88%D9%86_%D8%A8%D8%A7_%D8%AC%D8%B1%DB%8C%D8%A7%D9%86_HTML\" >\u0645\u062b\u0627\u0644 \u06a9\u062f: \u0622\u0632\u0645\u0648\u0646 \u0628\u0627 \u062c\u0631\u06cc\u0627\u0646 HTML<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/dont-fall-into-the-cdn-trap-4keg\/#SPA_%D8%A8%D8%AF%D9%88%D9%86_%D8%AC%D8%A7%D9%88%D8%A7_%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA_%D8%B3%D9%85%D8%AA_%D9%85%D8%B4%D8%AA%D8%B1%DB%8C%D8%9F\" >SPA \u0628\u062f\u0648\u0646 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u0645\u0634\u062a\u0631\u06cc\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/dont-fall-into-the-cdn-trap-4keg\/#%D8%AA%DA%A9%D9%87_%D9%87%D8%A7%DB%8C_%D8%AC%D8%B1%DB%8C%D8%A7%D9%86_%D8%B1%D8%A7_%D8%A8%D8%A7_Async_Generators_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%DA%A9%D9%86%DB%8C%D8%AF\" >\u062a\u06a9\u0647 \u0647\u0627\u06cc \u062c\u0631\u06cc\u0627\u0646 \u0631\u0627 \u0628\u0627 Async Generators \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/dont-fall-into-the-cdn-trap-4keg\/#%DA%86%DB%8C%D8%B3%D8%AA_renderComponent\" >\u0686\u06cc\u0633\u062a renderComponent?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/dont-fall-into-the-cdn-trap-4keg\/#%DA%86%D8%B1%D8%A7_%D8%A7%DB%8C%D9%86_%DB%8C%DA%A9_%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1_%D8%AF%D9%87%D9%86%D8%AF%D9%87_%D8%A8%D8%A7%D8%B2%DB%8C_%D8%A7%D8%B3%D8%AA%D8%9F\" >\u0686\u0631\u0627 \u0627\u06cc\u0646 \u06cc\u06a9 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u0646\u062f\u0647 \u0628\u0627\u0632\u06cc \u0627\u0633\u062a\u061f<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/dont-fall-into-the-cdn-trap-4keg\/#%D9%BE%D8%A7%DA%A9_%DA%A9%D8%B1%D8%AF%D9%86_%D8%AF%D8%B1_%D9%85%D9%82%D8%A7%D8%A8%D9%84_HTMX\" >\u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 HTMX<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/dont-fall-into-the-cdn-trap-4keg\/#%D8%A8%D8%B1%DB%8C%D8%B3%D8%A7_%D8%AF%D8%B1_%D9%85%D9%82%D8%A7%D8%A8%D9%84_%D9%88%D8%A7%DA%A9%D9%86%D8%B4\" >\u0628\u0631\u06cc\u0633\u0627 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u0648\u0627\u06a9\u0646\u0634<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/dont-fall-into-the-cdn-trap-4keg\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\" >\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%D8%B1%D8%A7_%D8%AC%D8%B1%DB%8C%D8%A7%D9%86_HTML_%D9%85%D9%87%D9%85_%D8%A7%D8%B3%D8%AA\"><\/span>\n<p>  \u0686\u0631\u0627 \u062c\u0631\u06cc\u0627\u0646 HTML \u0645\u0647\u0645 \u0627\u0633\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>HTML Streaming \u06cc\u06a9 \u062a\u06a9\u0646\u06cc\u06a9 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0627\u0631\u0633\u0627\u0644 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f <strong>HTML \u0628\u0647 \u0635\u0648\u0631\u062a \u062a\u062f\u0631\u06cc\u062c\u06cc<\/strong> \u0627\u0632 \u0633\u0631\u0648\u0631 \u0628\u0647 \u0645\u0634\u062a\u0631\u06cc\u060c \u0628\u0647\u0628\u0648\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u06a9\u0627\u0647\u0634 \u062a\u0627\u062e\u06cc\u0631. \u0628\u0627 Brisa\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u062d\u062a\u0648\u0627\u06cc HTML \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u067e\u062e\u0634 \u06a9\u0646\u06cc\u062f\u060c \u0646\u0647 \u062a\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0627\u0648\u0644\u06cc\u0647\u060c \u0628\u0644\u06a9\u0647 \u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0648 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0631\u0648\u0631.<\/p>\n<p><\/p>\n<p>\u0627\u06af\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0641\u0642\u0637 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f <strong>1 \u062f\u0631\u062e\u0648\u0627\u0633\u062a<\/strong> \u0628\u0631\u0627\u06cc \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631\u060c \u062f\u0631 \u0622\u0646 \u06af\u06cc\u0631 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f <strong>\u062a\u0644\u0647 CDN<\/strong>. \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0648 \u062f\u0631 \u06cc\u06a9 \u06a9\u0627\u0628\u0648\u0633 \u0622\u0628\u0634\u0627\u0631\u06cc \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u06cc\u062f. CDN \u0647\u0627 \u0628\u0631\u0627\u06cc \u062f\u0627\u0631\u0627\u06cc\u06cc \u0647\u0627 \u062e\u0648\u0628 \u0647\u0633\u062a\u0646\u062f &#8211; \u0646\u0647 \u0628\u06cc\u0634\u062a\u0631. \u0648\u0628 \u0633\u0627\u06cc\u062a \u0634\u0645\u0627 \u0641\u0642\u0637 \u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u062f\u0627\u0631\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0645\u062a\u06a9\u06cc \u0646\u0628\u0627\u0634\u062f. <\/p>\n<p><strong>\u0631\u0646\u062f\u0631\u06cc\u0646\u06af<\/strong> \u0627\u062c\u0632\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 <strong>\u0633\u0631\u0648\u0631<\/strong> \u0628\u0627 <strong>\u062c\u0631\u06cc\u0627\u0646<\/strong> \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0627\u0647 \u0628\u0631\u0627\u06cc <strong>\u0627\u0632 \u062a\u0644\u0647 CDN \u0627\u062c\u062a\u0646\u0627\u0628 \u06a9\u0646\u06cc\u062f<\/strong>. Brisa \u0646\u0647 \u062a\u0646\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f <strong>\u062c\u0631\u06cc\u0627\u0646 HTML<\/strong> \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0631\u0646\u062f\u0631 \u0628\u0644\u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0627\u0633\u062e\u06cc \u0628\u0647 <strong>\u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0631\u0648\u0631<\/strong> \u067e\u0633 \u0627\u0632 \u0631\u0646\u062f\u0631 \u06a9\u0631\u062f\u0646 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062f\u0631 \u0633\u0631\u0648\u0631<\/p>\n<p>\u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062a\u0639\u062c\u0628 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0645\u0627 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u062b\u0627\u0628\u062a \u0647\u0633\u062a\u0646\u062f \u0648 \u0645\u0646 \u0646\u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u0645 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0647\u0645\u06cc\u0634\u0647 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0631\u0646\u062f\u0631 \u06a9\u0646\u0645. \u062e\u0648\u0628\u060c \u0628\u0631\u06cc\u0633\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f <strong>\u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0633\u0627\u062e\u062a \u0627\u0632 \u0642\u0628\u0644 \u0631\u0646\u062f\u0631 \u06a9\u0646\u06cc\u062f<\/strong> \u0641\u0642\u0637 \u0628\u0627 \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc\u060c \u0628\u0647 \u0637\u0648\u0631\u06cc \u06a9\u0647 <strong>\u0641\u0642\u0637 \u0627\u062c\u0632\u0627\u06cc \u067e\u0648\u06cc\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f<\/strong> \u0631\u0648\u06cc \u0633\u0631\u0648\u0631<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"p\">&lt;<\/span><span class=\"nc\">StaticComponent<\/span> <span class=\"na\">renderOn<\/span><span class=\"p\">=<\/span><span class=\"s\">\"build\"<\/span> <span class=\"p\">\/&gt;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A2%DB%8C%D8%A7_%D9%88%D8%A7%D8%B1%D8%AF%D8%A7%D8%AA_%D9%BE%D9%88%DB%8C%D8%A7_%D8%AA%D9%84%D9%87_CDN_%D8%B1%D8%A7_%D8%AD%D9%84_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\"><\/span>\n<p>  \u0622\u06cc\u0627 \u0648\u0627\u0631\u062f\u0627\u062a \u067e\u0648\u06cc\u0627 \u062a\u0644\u0647 CDN \u0631\u0627 \u062d\u0644 \u0645\u06cc \u06a9\u0646\u062f\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>\u062e\u06cc\u0631<\/strong>. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 HTML Streaming \u062f\u0631 Server Actions \u062f\u0642\u06cc\u0642\u0627\u064b \u0647\u0645\u0627\u0646 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u062f\u0631 \u0627\u0648\u0644\u06cc\u0646 \u0631\u0646\u062f\u0631 \u0631\u0627 \u062f\u0627\u0631\u062f.<\/p>\n<p>\u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f <strong>\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646<\/strong> \u0648 <strong>\u0627\u0631\u0627\u0626\u0647<\/strong> \u0627\u0632 \u06cc\u06a9 <strong>\u06af\u0641\u062a\u06af\u0648<\/strong> \u0628\u0627 \u06cc\u06a9 <strong>\u0648\u0627\u0631\u062f\u0627\u062a \u067e\u0648\u06cc\u0627<\/strong>:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Faralroca.com%2Fimages%2Fblog-images%2Fdialog.png\" alt=\"\u06af\u0641\u062a\u06af\u0648\u06cc \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u06af\u0641\u062a\u06af\u0648\u06cc \u0633\u0645\u062a \u0645\u0634\u062a\u0631\u06cc\" loading=\"lazy\" width=\"800\" height=\"384\" title=\"\"><\/p>\n<p>\u0641\u0642\u0637 \u0627\u06af\u0631 \u062f\u06cc\u0627\u0644\u0648\u06af \u0628\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0645\u0627 \u062f\u0631 \u0647\u0645\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0647\u0633\u062a\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84_%DA%A9%D8%AF_%D8%A2%D8%B2%D9%85%D9%88%D9%86_%D8%A8%D8%A7_%D8%AC%D8%B1%DB%8C%D8%A7%D9%86_HTML\"><\/span>\n<p>  \u0645\u062b\u0627\u0644 \u06a9\u062f: \u0622\u0632\u0645\u0648\u0646 \u0628\u0627 \u062c\u0631\u06cc\u0627\u0646 HTML<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0627 \u062f\u0631 Brisa \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 HTML Streaming \u0627\u0632 \u0637\u0631\u06cc\u0642 Server Actions \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u06cc\u06a9 \u0645\u0633\u0627\u0628\u0642\u0647 \u0633\u0648\u0627\u0644\u0627\u062a \u0631\u0627 \u062f\u0631 Brisa \u0628\u0633\u0627\u0632\u06cc\u0645 \u0648 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f \u06a9\u0647 \u0627\u0646\u062c\u0627\u0645 \u0622\u0646 \u062c\u062f\u0627 \u0627\u0632 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0622\u0646 \u0686\u0642\u062f\u0631 \u0622\u0633\u0627\u0646 \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u0633\u0627\u0628\u0642\u0647\u060c \u0645\u0627 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u06cc\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0631\u0646\u062f\u0631 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u0631\u0633\u0634 \u0648 \u067e\u0627\u0633\u062e \u0631\u0627 \u0628\u0631 \u0639\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a. \u0633\u0648\u0627\u0644\u0627\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642 HTML Streaming \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f \u0648 \u067e\u0627\u0633\u062e \u0647\u0627 \u062f\u0631 \u0633\u0631\u0648\u0631 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">renderComponent<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">brisa\/server<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Define the type for questions to ensure type safety.<\/span>\n<span class=\"kd\">type<\/span> <span class=\"nx\">Question<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n  <span class=\"na\">answer<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ The correct answer for the question ('yes' or 'no').<\/span>\n  <span class=\"nl\">question<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ The text of the question to be displayed.<\/span>\n  <span class=\"nl\">id<\/span><span class=\"p\">:<\/span> <span class=\"kr\">number<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ Unique identifier for each question.<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"c1\">\/\/ All this code is server-code. It ensures that the user cannot infer the correct<\/span>\n<span class=\"c1\">\/\/ answers by inspecting the page source or the network.<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">questions<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Question<\/span><span class=\"p\">[]<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"na\">answer<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">no<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">question<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Is the Earth flat? <\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"na\">answer<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">yes<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">question<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Is the Earth round? <\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"mi\">3<\/span><span class=\"p\">,<\/span> <span class=\"na\">answer<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">no<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">question<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Can giraffes lay eggs?<\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"mi\">4<\/span><span class=\"p\">,<\/span> <span class=\"na\">answer<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">yes<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">question<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Can penguins fly?<\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"mi\">5<\/span><span class=\"p\">,<\/span> <span class=\"na\">answer<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">no<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">question<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Can a cow jump over the moon?<\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"mi\">6<\/span><span class=\"p\">,<\/span> <span class=\"na\">answer<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">yes<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">question<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Is water wet by definition?<\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"mi\">7<\/span><span class=\"p\">,<\/span> <span class=\"na\">answer<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">yes<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">question<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Is the sky blue?<\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"mi\">8<\/span><span class=\"p\">,<\/span> <span class=\"na\">answer<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">yes<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">question<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Do fish sleep with their eyes open?<\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\n  <span class=\"p\">{<\/span> <span class=\"na\">id<\/span><span class=\"p\">:<\/span> <span class=\"mi\">9<\/span><span class=\"p\">,<\/span> <span class=\"na\">answer<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">no<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">question<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Can a cow fly?<\/span><span class=\"dl\">'<\/span> <span class=\"p\">},<\/span>\n<span class=\"p\">];<\/span>\n\n<span class=\"c1\">\/\/ Function to open the modal with a random question.<\/span>\n<span class=\"kd\">function<\/span> <span class=\"nf\">openModal<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">randomIndex<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">Math<\/span><span class=\"p\">.<\/span><span class=\"nf\">floor<\/span><span class=\"p\">(<\/span><span class=\"nb\">Math<\/span><span class=\"p\">.<\/span><span class=\"nf\">random<\/span><span class=\"p\">()<\/span> <span class=\"o\">*<\/span> <span class=\"nx\">questions<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"nf\">renderComponent<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">element<\/span><span class=\"p\">:<\/span> <span class=\"p\">&lt;<\/span><span class=\"nc\">Modal<\/span> <span class=\"si\">{<\/span><span class=\"p\">...<\/span><span class=\"nx\">questions<\/span><span class=\"p\">[<\/span><span class=\"nx\">randomIndex<\/span><span class=\"p\">]<\/span><span class=\"si\">}<\/span> <span class=\"p\">\/&gt;,<\/span>\n    <span class=\"na\">target<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">#content<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"c1\">\/\/ Specify the DOM element where the modal should render.<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Function to process the user\u2019s answer and display the result.<\/span>\n<span class=\"kd\">function<\/span> <span class=\"nf\">processAnswer<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">:<\/span> <span class=\"nx\">ClickEvent<\/span><span class=\"p\">,<\/span> <span class=\"nx\">value<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">yes<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"c1\">\/\/ We have the event on the server, so we can access the target and the dataset!<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">id<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">.<\/span><span class=\"nx\">target<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">HTMLButtonElement<\/span><span class=\"p\">).<\/span><span class=\"nx\">dataset<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"c1\">\/\/ Check if the user's answer matches the correct answer.<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">isCorrect<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">questions<\/span><span class=\"p\">.<\/span><span class=\"nf\">find<\/span><span class=\"p\">((<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">q<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span> <span class=\"o\">===<\/span> <span class=\"nc\">Number<\/span><span class=\"p\">(<\/span><span class=\"nx\">id<\/span><span class=\"p\">)).<\/span><span class=\"nx\">answer<\/span> <span class=\"o\">===<\/span> <span class=\"nx\">value<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"c1\">\/\/ Render feedback based on the correctness of the answer.<\/span>\n  <span class=\"nf\">renderComponent<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">element<\/span><span class=\"p\">:<\/span> <span class=\"nx\">isCorrect<\/span> <span class=\"p\">?<\/span> <span class=\"p\">(<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">p<\/span> <span class=\"na\">id<\/span><span class=\"p\">=<\/span><span class=\"s\">\"content\"<\/span> <span class=\"na\">class<\/span><span class=\"p\">=<\/span><span class=\"s\">\"correct\"<\/span><span class=\"p\">&gt;<\/span>\n        Correct!\n      <span class=\"p\"\/><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">)<\/span> <span class=\"p\">:<\/span> <span class=\"p\">(<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">p<\/span> <span class=\"na\">id<\/span><span class=\"p\">=<\/span><span class=\"s\">\"content\"<\/span> <span class=\"na\">class<\/span><span class=\"p\">=<\/span><span class=\"s\">\"incorrect\"<\/span><span class=\"p\">&gt;<\/span>\n        Incorrect!\n      <span class=\"p\"\/><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">),<\/span>\n    <span class=\"na\">target<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">dialog<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Main homepage component.<\/span>\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">Homepage<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"p\">&lt;&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span> <span class=\"na\">class<\/span><span class=\"p\">=<\/span><span class=\"s\">\"hero\"<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">h1<\/span><span class=\"p\">&gt;<\/span>\n          <span class=\"p\">&lt;<\/span><span class=\"nt\">span<\/span> <span class=\"na\">class<\/span><span class=\"p\">=<\/span><span class=\"s\">\"h1_addition\"<\/span><span class=\"p\">&gt;<\/span>Welcome to <span class=\"p\"\/><span class=\"nt\">span<\/span><span class=\"p\">&gt;<\/span>Brisa\n        <span class=\"p\"\/><span class=\"nt\">h1<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">p<\/span> <span class=\"na\">class<\/span><span class=\"p\">=<\/span><span class=\"s\">\"edit-note\"<\/span><span class=\"p\">&gt;<\/span>\u270f\ufe0f SSR Modal example<span class=\"p\"\/><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">code<\/span><span class=\"p\">&gt;<\/span>src\/pages\/index.tsx<span class=\"p\"\/><span class=\"nt\">code<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\"\/><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">form<\/span> <span class=\"na\">onSubmit<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">openModal<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">button<\/span><span class=\"p\">&gt;<\/span>Open modal<span class=\"p\"\/><span class=\"nt\">button<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span> <span class=\"na\">id<\/span><span class=\"p\">=<\/span><span class=\"s\">\"content\"<\/span> <span class=\"p\">\/&gt;<\/span> <span class=\"si\">{<\/span><span class=\"cm\">\/* Container for rendering dynamic content *\/<\/span><span class=\"si\">}<\/span>\n      <span class=\"p\"\/><span class=\"nt\">form<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">&gt;<\/span>\n  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Modal component to display a question and answer options.<\/span>\n<span class=\"kd\">function<\/span> <span class=\"nf\">Modal<\/span><span class=\"p\">({<\/span> <span class=\"nx\">question<\/span><span class=\"p\">,<\/span> <span class=\"nx\">answer<\/span><span class=\"p\">,<\/span> <span class=\"nx\">id<\/span> <span class=\"p\">}:<\/span> <span class=\"nx\">Question<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\">dialog<\/span> <span class=\"na\">open<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">form<\/span> <span class=\"na\">method<\/span><span class=\"p\">=<\/span><span class=\"s\">\"dialog\"<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">h2<\/span><span class=\"p\">&gt;<\/span><span class=\"si\">{<\/span><span class=\"nx\">question<\/span><span class=\"si\">}<\/span><span class=\"p\"\/><span class=\"nt\">h2<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"si\">{<\/span><span class=\"cm\">\/* Button for \"Yes\" answer *\/<\/span><span class=\"si\">}<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">button<\/span> <span class=\"na\">data-id<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">id<\/span><span class=\"si\">}<\/span> <span class=\"na\">onClick<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">processAnswer<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">yes<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n          Yes\n        <span class=\"p\"\/><span class=\"nt\">button<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"si\">{<\/span><span class=\"cm\">\/* Button for \"No\" answer *\/<\/span><span class=\"si\">}<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">button<\/span> <span class=\"na\">data-id<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">id<\/span><span class=\"si\">}<\/span> <span class=\"na\">onClick<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">processAnswer<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">,<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">no<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n          No\n        <span class=\"p\"\/><span class=\"nt\">button<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\"\/><span class=\"nt\">form<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\"\/><span class=\"nt\">dialog<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0646\u0637\u0642 \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u062f\u06cc\u0627\u0644\u0648\u06af\u060c \u0627\u0645\u0646\u06cc\u062a \u0648 \u0633\u0627\u062f\u06af\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0622\u0646 \u0627\u0633\u062a. \u0628\u0627 Brisa\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u067e\u0631\u062f\u0627\u0632\u0634\u200c\u0647\u0627\u06cc \u0631\u0646\u062f\u0631 \u0648 \u0645\u0646\u0637\u0642\u06cc \u0631\u0627 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u062d\u06cc\u0627\u062a\u06cc \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u063a\u06cc\u0631\u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u0646\u062f \u0648 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u062f\u0642\u06cc\u0642 \u0646\u06af\u0631\u0627\u0646\u06cc\u200c\u0647\u0627 \u062d\u0641\u0638 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u06cc\u06a9 \u06af\u0641\u062a\u06af\u0648\u06cc \u0645\u0648\u062f\u0627\u0644 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0633\u0648\u0627\u0644\u0627\u062a \u0645\u0633\u0627\u0628\u0642\u0647 \u062a\u0635\u0627\u062f\u0641\u06cc \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f. \u0645\u0646\u0637\u0642 \u0627\u0646\u062a\u062e\u0627\u0628 \u0633\u0648\u0627\u0644\u060c \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u067e\u0627\u0633\u062e \u0648 \u0631\u0646\u062f\u0631 \u06a9\u0631\u062f\u0646 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062e\u0637\u0631 \u0627\u0641\u0634\u0627\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062d\u0633\u0627\u0633 \u0645\u0627\u0646\u0646\u062f \u067e\u0627\u0633\u062e \u0635\u062d\u06cc\u062d \u0631\u0627 \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u0645\u0634\u062a\u0631\u06cc \u0627\u0632 \u0628\u06cc\u0646 \u0645\u06cc \u0628\u0631\u062f.<\/p>\n<p>\u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0645\u0627 \u0645\u062f\u0627\u0644\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u0648\u0627\u0631\u062f\u0627\u062a \u067e\u0648\u06cc\u0627 \u0631\u0648\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0627\u0632 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0622\u0646\u200c\u0647\u0627 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627\u060c \u062f\u0631\u062e\u0648\u0627\u0633\u062a CDN \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645\u060c \u0648 \u0633\u067e\u0633 \u0627\u06af\u0631 \u0645\u062f\u0627\u0644 \u0628\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f\u060c \u067e\u0633 \u0627\u0632 \u0631\u0646\u062f\u0631 \u0634\u062f\u0646 \u0628\u0627\u06cc\u062f \u0622\u0628\u0634\u0627\u0631\u06cc \u0627\u0632 \u062a\u0645\u0627\u0633\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0633\u0631\u0648\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u062f. \u0628\u0627 Brisa\u060c \u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u062f\u0627\u0644 \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0627\u0632 \u0633\u0631\u0648\u0631 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0627\u0632 \u0628\u0631\u0642\u0631\u0627\u0631\u06cc \u062a\u0645\u0627\u0633\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u0627\u062c\u062a\u0646\u0627\u0628 \u06a9\u0646\u06cc\u0645 \u0648 \u0645\u0646\u0637\u0642 \u0645\u062f\u0627\u0644 \u0631\u0627 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u062d\u0641\u0638 \u06a9\u0646\u06cc\u0645.<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=7kwT1oshUJA\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/www.youtube.com\/watch?v=7kwT1oshUJA<\/a><br \/>\n<\/iframe>\n<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f\u060c \u0645\u0627 \u0645\u0632\u0627\u06cc\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<ol>\n<li>\n<strong>\u0627\u0645\u0646\u06cc\u062a \u067e\u06cc\u0634\u0631\u0641\u062a\u0647:<\/strong> \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062d\u0633\u0627\u0633\u060c \u0645\u0627\u0646\u0646\u062f \u067e\u0627\u0633\u062e \u0647\u0627\u06cc \u0635\u062d\u06cc\u062d\u060c \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0628\u0627\u0642\u06cc \u0645\u06cc \u0645\u0627\u0646\u0646\u062f \u0648 \u0627\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u06cc\u0627 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u063a\u06cc\u0631\u0645\u062c\u0627\u0632 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/li>\n<li>\n<strong>UX \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u06cc\u062f<\/strong>: \u0628\u0627 \u0631\u0646\u062f\u0631 \u06a9\u0631\u062f\u0646 \u0645\u0648\u062f\u0627\u0644 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0628\u0627 \u0627\u0633\u062a\u0631\u06cc\u0645\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0634\u0628\u06a9\u0647 \u0627\u0636\u0627\u0641\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0647 \u0644\u0637\u0641 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0628\u0647\u0628\u0648\u062f \u0628\u0628\u062e\u0634\u06cc\u0645.<\/li>\n<li>\n<strong>\u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0648\u0644\u062a\u06cc \u0633\u0627\u062f\u0647 \u0634\u062f\u0647:<\/strong>  \u0628\u0627 \u0645\u062a\u0645\u0631\u06a9\u0632 \u06a9\u0631\u062f\u0646 \u0645\u0646\u0637\u0642 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631\u060c \u06a9\u0644\u0627\u06cc\u0646\u062a \u0633\u0628\u06a9 \u0648\u0632\u0646 \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u062f \u0648 \u0641\u0642\u0637 \u0628\u0631 \u0631\u0648\u06cc \u0631\u0646\u062f\u0631 \u0648 \u062a\u0639\u0627\u0645\u0644 \u06a9\u0627\u0631\u0628\u0631 \u062a\u0645\u0631\u06a9\u0632 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li>\n<strong>\u06a9\u0627\u0647\u0634 \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0648 \u0627\u0646\u062f\u0627\u0632\u0647 \u0633\u0645\u062a \u0645\u0634\u062a\u0631\u06cc:<\/strong> \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u06cc\u0627 \u0645\u0646\u0637\u0642 \u0627\u0636\u0627\u0641\u06cc \u0633\u0645\u062a \u0645\u0634\u062a\u0631\u06cc \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062f\u0627\u0644. \u0633\u0631\u0648\u0631 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 SPA \u0631\u0627 \u0628\u062f\u0648\u0646 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0627\u0646\u062f\u0627\u0632\u0647 \u0628\u0633\u062a\u0647 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631\u06cc \u0645\u0634\u062a\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"SPA_%D8%A8%D8%AF%D9%88%D9%86_%D8%AC%D8%A7%D9%88%D8%A7_%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA_%D8%B3%D9%85%D8%AA_%D9%85%D8%B4%D8%AA%D8%B1%DB%8C%D8%9F\"><\/span>\n<p>  SPA \u0628\u062f\u0648\u0646 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u0645\u0634\u062a\u0631\u06cc\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>\u0628\u0644\u0647<\/strong>\u060c \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f! \u0627\u06af\u0631\u0686\u0647 \u0645\u0627 \u0627\u0632 \u0646\u0648\u0634\u062a\u0646 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627\u06cc \u0648\u0628 \u0628\u0627 \u0622\u0646 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 <strong>JSX<\/strong> \u0648 <strong>\u0633\u06cc\u06af\u0646\u0627\u0644 \u0647\u0627<\/strong> \u0628\u0627 \u06a9\u062f \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0645 (3 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a)\u060c \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <strong>\u0641\u0642\u0637<\/strong> \u0628\u0631\u0627\u06cc \u062e\u0627\u0644\u0635 <strong>\u062a\u0639\u0627\u0645\u0644\u0627\u062a \u0645\u0634\u062a\u0631\u06cc<\/strong>. \u0645\u0627 <strong>\u0647\u062f\u0641<\/strong> \u0627\u06cc\u062c\u0627\u062f \u0627\u0645\u06a9\u0627\u0646 \u067e\u0630\u06cc\u0631 \u0627\u0633\u062a <strong>\u0622\u0628\u06af\u0631\u0645 \u0628\u062f\u0648\u0646<\/strong> \u0646\u06cc\u0627\u0632 \u0628\u0647 <strong>\u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a<\/strong>.<\/p>\n<p>\u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0634\u0645\u0627 <strong>\u062a\u062c\u0627\u0631\u062a \u0627\u0644\u06a9\u062a\u0631\u0648\u0646\u06cc\u06a9<\/strong> \u0633\u0627\u06cc\u062a\u060c \u0628\u0647 \u062c\u0627\u06cc \u062f\u0627\u0634\u062a\u0646 \u06cc\u06a9 <strong>\u0622\u0628\u0634\u0627\u0631<\/strong> \u0627\u0632 <strong>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627<\/strong> \u0648 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 <strong>\u06a9\u062f \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a<\/strong> \u06a9\u0647 \u0622\u0633\u06cc\u0628 \u0645\u06cc \u0631\u0633\u0627\u0646\u062f <strong>\u0639\u0645\u0644\u06a9\u0631\u062f<\/strong> \u0648 <strong>\u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc<\/strong>\u060c \u062a\u0628\u062f\u06cc\u0644 \u0628\u0647 a \u0645\u06cc \u0634\u0648\u062f <strong>\u0622\u0628\u06af\u0631\u0645<\/strong> \u0628\u062f\u0648\u0646 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a\u060c \u0632\u06cc\u0631\u0627 \u0628\u06cc\u0634\u062a\u0631 \u062a\u0639\u0627\u0645\u0644\u0627\u062a\u06cc \u06a9\u0647 \u0628\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u0646\u062f \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u0646\u062f <strong>\u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc \u0634\u0648\u062f<\/strong>. <\/p>\n<p>\u0631\u0646\u062f\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0628\u0633\u06cc\u0627\u0631 \u0627\u0633\u062a <strong>\u0627\u0631\u0632\u0627\u0646<\/strong> \u0648 <strong>\u0633\u0631\u06cc\u0639<\/strong> (~ 10 \u0645\u06cc\u0644\u06cc \u062b\u0627\u0646\u06cc\u0647)! <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Faralroca.com%2Fimages%2Fblog-images%2Fcheap.gif\" alt=\"\u0627\u0631\u0632\u0627\u0646 \u0648 \u0633\u0631\u06cc\u0639\" loading=\"lazy\" width=\"800\" height=\"711\" data-animated=\"true\" title=\"\"><\/p>\n<figure><figcaption><small>\u0627\u0631\u0632\u0627\u0646 \u0648 \u0633\u0631\u06cc\u0639<\/small><\/figcaption><\/figure>\n<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AA%DA%A9%D9%87_%D9%87%D8%A7%DB%8C_%D8%AC%D8%B1%DB%8C%D8%A7%D9%86_%D8%B1%D8%A7_%D8%A8%D8%A7_Async_Generators_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u062a\u06a9\u0647 \u0647\u0627\u06cc \u062c\u0631\u06cc\u0627\u0646 \u0631\u0627 \u0628\u0627 Async Generators \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Brisa \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f <strong>\u062a\u06a9\u0647 \u0647\u0627\u06cc \u062c\u0631\u06cc\u0627\u0646<\/strong> \u0628\u0627 <strong>\u0698\u0646\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc Async<\/strong>. \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f <strong>\u062c\u0631\u06cc\u0627\u0646<\/strong> \u0631\u0627 <strong>HTML<\/strong> \u062f\u0631 <strong>\u062a\u06a9\u0647 \u0647\u0627<\/strong> \u0648 <strong>\u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f<\/strong> \u0631\u0627 <strong>\u062c\u0631\u06cc\u0627\u0646<\/strong> \u0627\u0632 <strong>\u062c\u0631\u06cc\u0627\u0646<\/strong>.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Database<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">bun:sqlite<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">renderComponent<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">brisa\/server<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">LoadMovies<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">function<\/span> <span class=\"nf\">streamMovies<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nf\">renderComponent<\/span><span class=\"p\">({<\/span>\n      <span class=\"na\">element<\/span><span class=\"p\">:<\/span> <span class=\"p\">&lt;<\/span><span class=\"nc\">MovieItems<\/span> <span class=\"p\">\/&gt;,<\/span>\n      <span class=\"na\">target<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">ul<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">placement<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">append<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"p\">&lt;&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">button<\/span> <span class=\"na\">id<\/span><span class=\"p\">=<\/span><span class=\"s\">\"movies\"<\/span> <span class=\"na\">onClick<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">streamMovies<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span>\n        Click here to stream movies from a Server Action\n      <span class=\"p\"\/><span class=\"nt\">button<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">ul<\/span> <span class=\"p\">\/&gt;<\/span>\n    <span class=\"p\">&gt;<\/span>\n  <span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">db<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Database<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">db.sqlite<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n\n<span class=\"k\">async<\/span> <span class=\"kd\">function<\/span><span class=\"o\">*<\/span> <span class=\"nc\">MovieItems<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">for <\/span><span class=\"p\">(<\/span><span class=\"kd\">const<\/span> <span class=\"nx\">movie<\/span> <span class=\"k\">of<\/span> <span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nf\">query<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">SELECT title, year FROM movies<\/span><span class=\"dl\">\"<\/span><span class=\"p\">))<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">yield <\/span><span class=\"p\">(<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">li<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"si\">{<\/span><span class=\"nx\">movie<\/span><span class=\"p\">.<\/span><span class=\"nx\">title<\/span><span class=\"si\">}<\/span> (<span class=\"si\">{<\/span><span class=\"nx\">movie<\/span><span class=\"p\">.<\/span><span class=\"nx\">year<\/span><span class=\"si\">}<\/span>)\n      <span class=\"p\"\/><span class=\"nt\">li<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0627 \u0627\u0632 \u06cc\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <strong>Async Generator<\/strong> \u0628\u0647 <strong>\u062c\u0631\u06cc\u0627\u0646<\/strong> \u0641\u06cc\u0644\u0645 \u0647\u0627\u06cc \u0627\u0644\u0641 <strong>\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 SQLite<\/strong>. \u0647\u0631 <code>yield<\/code> \u06cc\u06a9 \u062a\u06a9\u0647 \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%DB%8C%D8%B3%D8%AA_renderComponent\"><\/span>\n<p>  \u0686\u06cc\u0633\u062a <code>renderComponent<\/code>?<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u06cc\u0633\u0627 <code>renderComponent<\/code> \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f:<\/p>\n<ol>\n<li><strong>\u0645\u0648\u0644\u0641\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0648\u06cc\u0627 \u062f\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0631\u0646\u062f\u0631 \u06a9\u0646\u06cc\u062f.<\/strong><\/li>\n<li>\n<strong>\u0645\u0648\u0644\u0641\u0647 \u0647\u0627\u06cc \u062e\u0627\u0635 \u0631\u0627 \u0628\u0647 \u0645\u06a9\u0627\u0646 \u0647\u0627\u06cc \u062e\u0627\u0635 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u06cc\u062f<\/strong> \u062f\u0631 DOM<\/li>\n<li>\n<strong>\u0646\u062d\u0648\u0647 \u0648 \u0645\u06a9\u0627\u0646 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f<\/strong> (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u060c \u0627\u0644\u062d\u0627\u0642\u060c \u0642\u0628\u0644\u060c \u0628\u0639\u062f \u0648 \u0642\u0628\u0644).<\/li>\n<li>\n<strong>\u0627\u0641\u0632\u0627\u06cc\u0634 \u0627\u0646\u062a\u0642\u0627\u0644<\/strong> \u0628\u0627 View Transition API.<\/li>\n<li>\n<strong>\u062c\u0631\u06cc\u0627\u0646 \u0627\u062c\u0632\u0627\u06cc JSX<\/strong> \u0628\u0647 \u0635\u0648\u0631\u062a \u062a\u062f\u0631\u06cc\u062c\u06cc \u0627\u0632 \u0633\u0631\u0648\u0631<\/li>\n<\/ol>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u06af\u0627\u0647 \u0633\u0631\u06cc\u0639 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">MyComponent<\/span><span class=\"p\">({<\/span> <span class=\"nx\">text<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">foo<\/span><span class=\"dl\">\"<\/span> <span class=\"p\">}:<\/span> <span class=\"p\">{<\/span> <span class=\"nl\">text<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span> <span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">function<\/span> <span class=\"nf\">handleClick<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ Re-render the same component<\/span>\n    <span class=\"nf\">renderComponent<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"c1\">\/\/ Re-render with new props<\/span>\n    <span class=\"nf\">renderComponent<\/span><span class=\"p\">({<\/span> <span class=\"na\">element<\/span><span class=\"p\">:<\/span> <span class=\"p\">&lt;<\/span><span class=\"nc\">MyComponent<\/span> <span class=\"na\">text<\/span><span class=\"p\">=<\/span><span class=\"s\">\"bar\"<\/span> <span class=\"p\">\/&gt;<\/span> <span class=\"p\">});<\/span>\n\n    <span class=\"c1\">\/\/ Render another Component to a specific location<\/span>\n    <span class=\"nf\">renderComponent<\/span><span class=\"p\">({<\/span>\n      <span class=\"na\">element<\/span><span class=\"p\">:<\/span> <span class=\"p\">&lt;<\/span><span class=\"nc\">AnotherComponent<\/span> <span class=\"p\">\/&gt;,<\/span>\n      <span class=\"na\">target<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">#target-id<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">placement<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">append<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">withTransition<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"c1\">\/\/ Enhance transitions with the View Transition API<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">button<\/span> <span class=\"na\">onClick<\/span><span class=\"p\">=<\/span><span class=\"si\">{<\/span><span class=\"nx\">handleClick<\/span><span class=\"si\">}<\/span><span class=\"p\">&gt;<\/span><span class=\"si\">{<\/span><span class=\"nx\">text<\/span><span class=\"si\">}<\/span><span class=\"p\"\/><span class=\"nt\">button<\/span><span class=\"p\">&gt;<\/span>\n    <span class=\"p\"\/><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0645\u0647 \u0627\u06cc\u0646 \u06a9\u062f\u0647\u0627 \u06a9\u062f\u0647\u0627\u06cc \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u0647\u0633\u062a\u0646\u062f. \u062f\u0631 Brisa\u060c \u062a\u0645\u0627\u0645 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u0633\u0631\u0648\u0631\u060c \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%D8%B1%D8%A7_%D8%A7%DB%8C%D9%86_%DB%8C%DA%A9_%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1_%D8%AF%D9%87%D9%86%D8%AF%D9%87_%D8%A8%D8%A7%D8%B2%DB%8C_%D8%A7%D8%B3%D8%AA%D8%9F\"><\/span>\n<p>  \u0686\u0631\u0627 \u0627\u06cc\u0646 \u06cc\u06a9 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u0646\u062f\u0647 \u0628\u0627\u0632\u06cc \u0627\u0633\u062a\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0631\u0648\u06cc\u06a9\u0631\u062f Brisa \u0628\u0647 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0627\u0632 \u0645\u062f\u0644 React \u0648 \u0645\u0641\u0627\u0647\u06cc\u0645 HTMX \u0627\u0644\u0647\u0627\u0645 \u06af\u0631\u0641\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0628\u0647 \u06af\u0648\u0646\u0647 \u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0633\u0627\u062f\u0647 \u062a\u0631 \u0648 \u0630\u0627\u062a\u0627 \u0627\u0645\u0646 \u062a\u0631 \u0628\u0627\u0634\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%BE%D8%A7%DA%A9_%DA%A9%D8%B1%D8%AF%D9%86_%D8%AF%D8%B1_%D9%85%D9%82%D8%A7%D8%A8%D9%84_HTMX\"><\/span>\n<p>  \u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 HTMX<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>HTMX<\/strong> \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0648\u06cc\u0627 \u0628\u062e\u0634 \u0647\u0627\u06cc\u06cc \u0627\u0632 DOM \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u067e\u0627\u0633\u062e \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u0646\u062f. \u0627\u0645\u0627 \u0641\u0627\u0642\u062f:<\/p>\n<ul>\n<li>\n<strong>\u062f\u0627\u0646\u0647 \u0628\u0646\u062f\u06cc \u062f\u0631 \u0633\u0637\u062d \u0645\u0624\u0644\u0641\u0647:<\/strong> HTMX \u0628\u0631 \u067e\u0627\u0631\u0647 \u0647\u0627\u06cc HTML \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0633\u0631\u0648\u0631 \u0628\u062f\u0648\u0646 \u0645\u0641\u0647\u0648\u0645 \u0627\u062c\u0632\u0627\u0621 \u0645\u062a\u06a9\u06cc \u0627\u0633\u062a.<\/li>\n<li>\n<strong>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646:<\/strong> HTMX \u0628\u0637\u0648\u0631 \u0628\u0648\u0645\u06cc \u0627\u0632 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0647\u0627\u06cc \u062c\u0631\u06cc\u0627\u0646\u06cc \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\n<strong>\u0627\u0646\u062f\u0627\u0632\u0647 \u0628\u0633\u062a\u0647<\/strong>: HTMX \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 14 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a\u06cc \u0627\u0633\u062a\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 Brisa \u062a\u0646\u0647\u0627 2 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a \u0627\u0633\u062a.<\/li>\n<\/ul>\n<p>\u0628\u0627 <code>renderComponent<\/code>\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<ul>\n<li>\n<strong>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 \u0645\u0648\u0644\u0641\u0647:<\/strong> \u0627\u062c\u0632\u0627\u06cc Brisa \u0628\u0647 \u0637\u0648\u0631 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u062f\u0648\u0628\u0627\u0631\u0647 \u0631\u0646\u062f\u0631 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u0627\u0632 \u062a\u0631\u06a9\u06cc\u0628 JSX \u0648 React \u0645\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/li>\n<li>\n<strong>\u0642\u0631\u0627\u0631\u06af\u06cc\u0631\u06cc \u067e\u0648\u06cc\u0627:<\/strong> \u0627\u062c\u0632\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 DOM \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06cc\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\n<strong>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646:<\/strong> \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646 \u0647\u0627\u06cc \u0633\u0645\u062a \u0633\u0631\u0648\u0631\u060c \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062a\u062f\u0631\u06cc\u062c\u06cc \u0627\u0631\u0633\u0627\u0644 \u0648 \u0631\u0646\u062f\u0631 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A8%D8%B1%DB%8C%D8%B3%D8%A7_%D8%AF%D8%B1_%D9%85%D9%82%D8%A7%D8%A8%D9%84_%D9%88%D8%A7%DA%A9%D9%86%D8%B4\"><\/span>\n<p>  \u0628\u0631\u06cc\u0633\u0627 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u0648\u0627\u06a9\u0646\u0634<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 <strong>\u0648\u0627\u06a9\u0646\u0634 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f<\/strong>\u060c \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0627\u063a\u0644\u0628 \u0634\u0627\u0645\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f <code>\"use server\"<\/code> \u0648 <code>\"use client\"<\/code> \u0628\u062e\u0634\u0646\u0627\u0645\u0647 \u0647\u0627 \u0627\u06cc\u0646 \u0645\u062f\u0644 \u062f\u0648\u06af\u0627\u0646\u0647 \u067e\u062a\u0627\u0646\u0633\u06cc\u0644 \u062e\u0637\u0627\u06cc \u0627\u0646\u0633\u0627\u0646\u06cc \u0631\u0627 \u0645\u0639\u0631\u0641\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0646\u0627\u062e\u0648\u0627\u0633\u062a\u0647 \u0645\u0624\u0644\u0641\u0647\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0645\u0639\u0631\u0636 \u062f\u06cc\u062f \u0645\u0634\u062a\u0631\u06cc \u0642\u0631\u0627\u0631 \u062f\u0647\u062f. <\/p>\n<p>\u0645\u062a\u0645\u0627\u06cc\u0632 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0639\u0628\u0627\u0631\u062a\u0646\u062f \u0627\u0632:<\/p>\n<ul>\n<li>\n<strong>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646 HTML:<\/strong> React \u0628\u0627 \u0627\u0631\u0633\u0627\u0644 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u06cc\u0646 \u0633\u0631\u0648\u0631 \u0648 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0633\u0631\u0628\u0627\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u062f. \u0628\u0631\u0639\u06a9\u0633\u060c Brisa HTML \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0631\u0627\u06cc \u0645\u0634\u062a\u0631\u06cc \u067e\u062e\u0634 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc \u0628\u062e\u0634\u062f.<\/li>\n<li>\n<strong>\u0633\u06cc\u06af\u0646\u0627\u0644 \u0647\u0627 &#8211; \u0648\u0627\u06a9\u0646\u0634 \u0631\u06cc\u0632 \u062f\u0627\u0646\u0647:<\/strong> \u0633\u06cc\u06af\u0646\u0627\u0644 \u0647\u0627\u06cc \u0633\u0645\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a Brisa \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u0628\u0627 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627\u06cc \u0648\u0628 \u0648\u0627\u06a9\u0646\u0634 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u0646\u062f \u0648 \u0627\u0632 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0631\u0646\u062f\u0631 \u0645\u062c\u062f\u062f \u06a9\u0627\u0645\u0644 \u0627\u062c\u062a\u0646\u0627\u0628 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/li>\n<li>\n<strong>\u0627\u0646\u062f\u0627\u0632\u0647 \u0628\u0633\u062a\u0647:<\/strong> React-DOM \u0646\u0633\u062e\u0647 19 \u062d\u062f\u0648\u062f 200 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a \u0648\u0632\u0646 \u062f\u0627\u0631\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 Brisa \u062f\u0627\u0631\u0627\u06cc \u0631\u062f\u067e\u0627\u06cc\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0633\u0628\u06a9 \u0648\u0632\u0646 \u062a\u0646\u0647\u0627 2 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a \u0627\u0633\u062a.<\/li>\n<li>\n<strong>\u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0647\u0627\u06cc \u0627\u0646\u062a\u062e\u0627\u0628\u06cc:<\/strong> Brisa \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0627\u062c\u0632\u0627\u06cc \u062e\u0627\u0635\u06cc \u0631\u0627 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u062c\u062f\u062f \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0647\u06cc\u062f.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Brisa&#39;s HTML Streaming \u0627\u0632 \u062a\u0644\u0647 CDN \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc \u0628\u062e\u0634\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u062d\u062a\u0648\u0627\u06cc HTML \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0627\u0648\u0644\u06cc\u0647\u060c \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0648 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0628\u0647 \u0645\u0634\u062a\u0631\u06cc \u067e\u062e\u0634 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0627\u0645\u0646\u06cc\u062a \u0648 \u062a\u062c\u0631\u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc \u0628\u062e\u0634\u062f \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0627\u0644\u062a \u0631\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u06af\u0632\u06cc\u0646\u0647 \u0627\u06cc \u0627\u06cc\u062f\u0647 \u0622\u0644 \u0628\u0631\u0627\u06cc \u0631\u0646\u062f\u0631 \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0648\u0628 \u0633\u0631\u06cc\u0639\u060c \u0627\u06cc\u0645\u0646 \u0648 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0647\u0633\u062a\u06cc\u062f\u060c \u0627\u0645\u0631\u0648\u0632 Brisa \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f!<\/p>\n<p><strong>\u0627\u0632 \u0645\u0627 \u062d\u0645\u0627\u06cc\u062a \u06a9\u0646\u06cc\u062f:<\/strong> \u0628\u0631\u0627\u06cc \u062e\u0631\u06cc\u062f \u0633\u0648\u0627\u06af \u0628\u0631\u06cc\u0633\u0627 \u0627\u0632 \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0645\u0627 \u062f\u06cc\u062f\u0646 \u06a9\u0646\u06cc\u062f! \ud83d\udecd\ufe0f<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fbrisa.build%2Fimages%2Fblog-images%2Fshop.webp\" alt=\"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0628\u0631\u06cc\u0633\u0627\" loading=\"lazy\" width=\"800\" height=\"850\" title=\"\"><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0686\u06af\u0648\u0646\u06af\u06cc \u0622\u0646 \u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u062f \u062c\u0631\u06cc\u0627\u0646 HTML Brisa \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u06a9\u0646\u062f \u0627\u0632 \u062a\u0644\u0647 CDN \u0627\u062c\u062a\u0646\u0627\u0628 \u06a9\u0646\u06cc\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u062f. \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 Brisa \u0631\u0627 \u0628\u0627 \u0633\u0627\u06cc\u0631 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u062d\u0628\u0648\u0628 \u0645\u0627\u0646\u0646\u062f \u0645\u0642\u0627\u06cc\u0633\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f HTMX \u0648 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":88895,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-88893","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/88893","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=88893"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/88893\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/88895"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=88893"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=88893"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=88893"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}