Skip to content

Commit ae78084

Browse files
committedJul 17, 2023
done
1 parent c1ef207 commit ae78084

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
 

‎src/content/reference/react-dom/client/hydrateRoot.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,3 +323,50 @@ export default function App() {
323323
324324
---
325325
326+
### تحديث مكون جذري مُرطّب {/*updating-a-hydrated-root-component*/}
327+
328+
بعد الانتهاء من ترطيب الجذر، يمكنك استدعاء [`root.render`](#root-render) لتحديث جذر مكون React. **خلافًا لاستخدام [`createRoot`](/reference/react-dom/client/createRoot)، عادةً لن تحتاج إلى القيام بذلك لأن المحتوى الأولي تم عرضه بالفعل كـ HTML.**
329+
330+
إذا استدعيت `root.render` في وقت ما بعد الترطيب، وكانت هيكلة شجرة المكونات مُطابقة لما تم عرضه سابقًا، ستقوم React [بالحفاظ على الحالة](/learn/preserving-and-resetting-state). لاحظ كيف يمكنك الكتابة في الحقل، مما يعني أن التحديثات من استدعاءات `render` المتكررة كل ثانية في هذا المثال لا تؤدي إلى تدمير الحالة:
331+
332+
<Sandpack>
333+
334+
```html public/index.html
335+
<!--
336+
HTML content inside <div id="root">...</div>
337+
was generated from App by react-dom/server.
338+
-->
339+
<div id="root"><h1>مرحبًا بالعالم! <!-- -->0</h1><input placeholder="اكتب شيئًا هنا"/></div>
340+
```
341+
342+
```js index.js active
343+
import { hydrateRoot } from 'react-dom/client';
344+
import './styles.css';
345+
import App from './App.js';
346+
347+
const root = hydrateRoot(
348+
document.getElementById('root'),
349+
<App counter={0} />
350+
);
351+
352+
let i = 0;
353+
setInterval(() => {
354+
root.render(<App counter={i} />);
355+
i++;
356+
}, 1000);
357+
```
358+
359+
```js App.js
360+
export default function App({counter}) {
361+
return (
362+
<>
363+
<h1>مرحبًا بالعالم! {counter}</h1>
364+
<input placeholder="اكتب شيئًا هنا" />
365+
</>
366+
);
367+
}
368+
```
369+
370+
</Sandpack>
371+
372+
غالبًا ما يكون استدعاء [`root.render`](#root-render) على جذر مُرطّب أمرًا غير معتاد. عادةً، ستقوم بـ[تحديث الحالة](/reference/react/useState) داخل أحد المكونات بدلاً من ذلك.

0 commit comments

Comments
 (0)
Please sign in to comment.