renderToNodeStream
renderToNodeStream
একটি React ট্রিকে একটি Node.js Readable Stream এ রেন্ডার করে।
const stream = renderToNodeStream(reactNode)
রেফারেন্স
renderToNodeStream(reactNode)
সার্ভারে, Node.js Readable Stream পাবার জন্য renderToNodeStream
কল করুন, যেটা আপনি রেসপন্সের মধ্যে pipe করে দিতে পারবেন।
import { renderToNodeStream } from 'react-dom/server';
const stream = renderToNodeStream(<App />);
stream.pipe(response);
ক্লায়েন্টে, সার্ভার থেকে তৈরী HTML ইন্টার্যাক্টিভ করতে hydrateRoot
কল করুন।
Parameters
reactNode
: A React node you want to render to HTML. For example, a JSX element like<App />
.
Returns
A Node.js Readable Stream that outputs an HTML string.
সতর্কতা
-
এই মেথডটি কোন আউটপুট রিটার্ন করবার আগে সকল Suspense boundary এর সম্পূর্ণ হবার জন্য অপেক্ষা করে।
-
React 18 নাগাদ, এই মেথডটি এর সকল আউটপুট বাফার করে, তার এটা আসলে streaming এর সুবিধা দিতে পারে না। এ কারণেই, এর বদলে
renderToPipeableStream
ব্যবহার করার জন্য আপনাকে পরামর্শ দেওয়া হচ্ছে। -
রিটার্ন হওয়া stream হচ্ছে utf-8 এ এনকোড করা byte stream। আপনি যদি অন্য কোন এনকোডিং এ stream চান, তাহলে iconv-lite এর মত কোন প্রজেক্ট দেখতে পারে, যা টেক্সট transcoding এর জন্য transform stream দেয়।
ব্যবহার
একটা React ট্রিকে HTML হিসেবে একটা Node.js Readable Stream এ রেন্ডার করা
একটি Node.js Readable Stream পাবার জন্য renderToNodeStream
কল করুন, যেটা আপনি সার্ভার রেসপন্সে pipe করে দিতে পারবেনঃ
import { renderToNodeStream } from 'react-dom/server';
// Route handler syntax আপনার ব্যাকেন্ড ফ্রেমওয়ার্কের উপর নির্ভর করে
app.use('/', (request, response) => {
const stream = renderToNodeStream(<App />);
stream.pipe(response);
});
Stream আপনার React কম্পোনেন্টগুলোর প্রাথমিক নন-ইন্টার্যাকটিভ HTML আউটপুট তৈরী করবে। ক্লায়েন্টে, সার্ভারে তৈরী হওয়া HTML কে hydrate করতে এবং একে ইন্টার্যাকটিভ করতে আপনাকে hydrateRoot
কল করতে হবে।