Server-Side Rendering API
renderToString()
vue/server-rendererথেকে এক্সপোর্ট করা হয়েছেপ্রকার
tsfunction renderToString( input: App | VNode, context?: SSRContext ): Promise<string>উদাহরন
jsimport { createSSRApp } from 'vue' import { renderToString } from 'vue/server-renderer' const app = createSSRApp({ data: () => ({ msg: 'hello' }), template: `<div>{{ msg }}</div>` }) ;(async () => { const html = await renderToString(app) console.log(html) })()SSR Context
আপনি একটি অপশনাল কন্টেক্সট অবজেক্ট পাস করতে পারেন, যা রেন্ডারের সময় অতিরিক্ত ডেটা রেকর্ড করতে ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ টেলিপোর্টের কনটেন্ট অ্যাক্সেস করা:
jsconst ctx = {} const html = await renderToString(app, ctx) console.log(ctx.teleports) // { '#teleported': 'teleported content' }এই পেইজের বেশিরভাগ অন্যান্য SSR APIগুলিও ঐচ্ছিকভাবে একটি কন্টেক্সট অবজেক্ট গ্রহণ করে। কন্টেক্সট অবজেক্টটি useSSRContext হেল্পার মাধ্যমে কম্পোনেন্ট কোডে অ্যাক্সেস করা যেতে পারে।
আরো দেখুন Guide - Server-Side Rendering
renderToNodeStream()
একটি Node.js Readable stream হিসাবে ইনপুট রেন্ডার করে।
vue/server-rendererথেকে এক্সপোর্ট করা হয়েছেপ্রকার
tsfunction renderToNodeStream( input: App | VNode, context?: SSRContext ): Readableউদাহরন
js// inside a Node.js http handler renderToNodeStream(app).pipe(res)নোট
এই মেথডটি
vue/server-renderer-এর ESM বিল্ডে সাপোর্টেড নয়, যা Node.js এনভারনমেন্ট থেকে ডিকপল করা হয়েছে। পরিবর্তেpipeToNodeWritableব্যবহার করুন।
pipeToNodeWritable()
একটি বিদ্যমান Node.js Writable stream উদাহরণে রেন্ডার এবং পাইপ করুন।
vue/server-rendererথেকে এক্সপোর্ট করার হয়েছেপ্রকার
tsfunction pipeToNodeWritable( input: App | VNode, context: SSRContext = {}, writable: Writable ): voidউদাহরন
js// inside a Node.js http handler pipeToNodeWritable(app, {}, res)
renderToWebStream()
একটি Web ReadableStream হিসাবে ইনপুট রেন্ডার করে।
vue/server-rendererথেকে এক্সপোর্ট করা হয়েছেপ্রকার
tsfunction renderToWebStream( input: App | VNode, context?: SSRContext ): ReadableStreamউদাহরন
js// inside an environment with ReadableStream support return new Response(renderToWebStream(app))নোট
যে ইনভারনমেন্টগুলি গ্লোবাল স্কোপে
ReadableStreamকনস্ট্রাক্টরকে প্রকাশ করে না, সেখানেpipeToWebWritable()ব্যবহার করা উচিত।
pipeToWebWritable()
একটি বিদ্যমান Web WritableStream উদাহরণে রেন্ডার এবং পাইপ করুন।
vue/server-rendererথেকে এক্সপোর্ট করা হয়েছেপ্রকার
tsfunction pipeToWebWritable( input: App | VNode, context: SSRContext = {}, writable: WritableStream ): voidউদাহরন
এটি সাধারণত
TransformStreamএর সাথে ব্যবহার করা হয়:js// TransformStream is available in environments such as CloudFlare workers. // in Node.js, TransformStream needs to be explicitly imported from 'stream/web' const { readable, writable } = new TransformStream() pipeToWebWritable(app, {}, writable) return new Response(readable)
renderToSimpleStream()
একটি সহজ রিডএ্যাবল ইন্টারফেস ব্যবহার করে স্ট্রিমিং মোডে ইনপুট রেন্ডার করে।
vue/server-rendererথেকে এক্সপোর্ট করা হয়েছেপ্রকার
tsfunction renderToSimpleStream( input: App | VNode, context: SSRContext, options: SimpleReadable ): SimpleReadable interface SimpleReadable { push(content: string | null): void destroy(err: any): void }উদাহরন
jslet res = '' renderToSimpleStream( app, {}, { push(chunk) { if (chunk === null) { // done console(`render complete: ${res}`) } else { res += chunk } }, destroy(err) { // error encountered } } )
useSSRContext()
একটি রানটাইম API যা renderToString() বা অন্যান্য সার্ভার রেন্ডার API-এ পাস করা কনটেক্স অবজেক্ট পুনরুদ্ধার করতে ব্যবহৃত হয়।
প্রকার
tsfunction useSSRContext<T = Record<string, any>>(): T | undefinedউদাহরন
পুনরুদ্ধার করা কনটেক্সটি চূড়ান্ত HTML রেন্ডার করার জন্য প্রয়োজনীয় তথ্য সংযুক্ত করতে ব্যবহার করা যেতে পারে (যেমন হেড মেটাডেটা)।
vue<script setup> import { useSSRContext } from 'vue' // make sure to only call it during SSR // https://vitejs.dev/guide/ssr.html#conditional-logic if (import.meta.env.SSR) { const ctx = useSSRContext() // ...attach properties to the context } </script>
data-allow-mismatch
একটি বিশেষ বৈশিষ্ট্য যা হাইড্রেশন অমিল সতর্কতা দমন করতে ব্যবহার করা যেতে পারে।
Example
html<div data-allow-mismatch="text">{{ data.toLocaleString() }}</div>The value can limit the allowed mismatch to a specific type. Allowed values are:
textchildren(only allows mismatch for direct children)classstyleattribute
If no value is provided, all types of mismatches will be allowed.