renderToStaticNodeStream
renderToStaticNodeStream
একটি নন-ইন্টার্যাকটিভ React ট্রি কে একটি Node.js Readable Stream. এ রেন্ডার করে।
const stream = renderToStaticNodeStream(reactNode, options?)
রেফারেন্স
renderToStaticNodeStream(reactNode, options?)
সার্ভারে, Node.js Readable Stream পাবার জন্য renderToStaticNodeStream
কল করুন।
import { renderToStaticNodeStream } from 'react-dom/server';
const stream = renderToStaticNodeStream(<Page />);
stream.pipe(response);
এই stream আপনার React কম্পোনেন্ট থেকে নন-ইন্টার্যাকটিভ HTML আউটপুট তৈরি করবে।
প্যারামিটার
-
reactNode
: একটা React নোড যেটা আপনি HTML এ রেন্ডার করতে চান। যেমন<Page />
এর মত একটি JSX এলিমেন্ট। -
optional
options
: সার্ভার রেন্ডারের জন্য একটি অবজেক্ট।- optional
identifierPrefix
:useId
দিয়ে বানানো ID এর জন্য React যে স্ট্রিং প্রিফিক্স ব্যবহার করে। একই পেইজে একাধিক রুট ব্যবহার করলে কনফ্লিক্ট এড়াতে এটা কাজে লাগে।
- optional
রিটার্ন
একটা Node.js Readable Stream যেটা একটা HTML স্ট্রিং আউটপুট দেয়। ফলাফলে যে HTML পাওয়া যায় সেটা ক্লায়েন্টে hydrate করা যায় না।
Caveats
-
renderToStaticNodeStream
আউটপুট hydrate করা যায় না। -
এই মেথডটি কোন আউটপুট রিটার্ন করবার আগে সকল Suspense boundary এর সম্পূর্ণ হবার জন্য অপেক্ষা করবে।
-
React 18 নাগাদ, এই মেথডটি এর সকল আউটপুট বাফার করে, তাই এটা আসলে streaming এর সুবিধা দিতে পারে না।
-
রিটার্ন হওয়া stream হচ্ছে utf-8 এ এনকোড করা byte stream। আপনি যদি অন্য কোন এনকোডিং এ stream চান, তাহলে iconv-lite এর মত কোন প্রজেক্ট দেখতে পারেন, যা টেক্সট transcoding এর জন্য transform stream দেয়।
ব্যবহার
একটা React ট্রি কে HTML হিসেবে একটা Node.js Readable Stream এ রেন্ডার করা
একটি Node.js Readable Stream পাবার জন্য renderToStaticNodeStream
কল করুন, যেটা আপনি সার্ভার রেসপন্সে pipe করে দিতে পারবেনঃ
import { renderToStaticNodeStream } from 'react-dom/server';
// Route handler syntax আপনার ব্যাকেন্ড ফ্রেমওয়ার্কের উপর নির্ভর করে
app.use('/', (request, response) => {
const stream = renderToStaticNodeStream(<Page />);
stream.pipe(response);
});
Stream টি আপনার React কম্পোনেন্টগুলোর প্রাথমিক নন-ইন্টার্যাকটিভ HTML আউটপুট তৈরী করবে।