--- id: 5a24c314108439a4d403618d title: Render React on the Server with renderToString challengeType: 6 isRequired: false videoUrl: '' localeTitle: تجعل رد فعل على الخادم مع renderToString --- ## Description
حتى الآن ، لقد تم تقديم مكونات React على العميل. عادة ، هذا ما ستفعله دائمًا. ومع ذلك ، هناك بعض حالات الاستخدام حيث يكون من المنطقي تقديم مكون React على الخادم. نظرًا لأن React عبارة عن مكتبة عرض جافا سكريبت ، ويمكنك تشغيل جافا سكريبت على الخادم باستخدام عقدة ، فهذا ممكن. في الواقع ، يوفر renderToString() طريقة renderToString() التي يمكنك استخدامها لهذا الغرض. هناك سببان رئيسيان لماذا يمكن استخدام التقديم على الخادم في تطبيق عالمي حقيقي. أولاً ، بدون إجراء ذلك ، ستتألف تطبيقات React من ملف HTML فارغ نسبيًا ومجموعة كبيرة من جافا سكريبت عندما يتم تحميله في البداية على المتصفح. قد لا يكون ذلك مثاليًا لمحركات البحث التي تحاول فهرسة محتوى صفحاتك حتى يتمكن الأشخاص من العثور عليك. إذا عرضت ترميز HTML الأولي على الخادم وأرسلته إلى العميل ، فسيحتوي تحميل الصفحة الأولي على كل ترميز الصفحة الذي يمكن الزحف إليه بواسطة محركات البحث. ثانيًا ، يؤدي هذا إلى إنشاء تجربة تحميل أولية أسرع للصفحات ؛ نظرًا لأن شفرة HTML المقدمة أصغر من شفرة جافا سكريبت للتطبيق بالكامل. سيظل رد الفعل قادرًا على التعرف على تطبيقك وإدارته بعد التحميل الأولي.
## Instructions
يتم توفير الأسلوب renderToString() على ReactDOMServer ، والذي يتوفر هنا ككائن عام. تأخذ الطريقة وسيطة واحدة وهي عنصر React. استخدم هذا لتقديم App إلى سلسلة.
## Tests
```yml tests: - text: يجب تقديم مكون App إلى سلسلة باستخدام ReactDOMServer.renderToString . testString: 'getUserInput => assert(getUserInput("index").replace(/ /g,"").includes("ReactDOMServer.renderToString()") && Enzyme.mount(React.createElement(App)).children().name() === "div", "The App component should render to a string using ReactDOMServer.renderToString.");' ```
## Challenge Seed
```jsx class App extends React.Component { constructor(props) { super(props); } render() { return
} }; // change code below this line ```
### Before Test
```jsx var ReactDOMServer = { renderToString(x) { return null; } }; ```
### After Test
```js console.info('after the test'); ```
## Solution
```js // solution required ```