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:
text
children
(only allows mismatch for direct children)class
style
attribute
If no value is provided, all types of mismatches will be allowed.