jsx를 서버측 HTML 템플릿으로 사용
                                            
                                                
                                                
                                                
                                                
                                                
                                                 5945 단어  webjavascriptnode
                    
// filename: newsletter.tsx
import { jsxToHtml } from '@incremental-html/jsx-to-html'
// server is an express router
server.get('/newsletter', async (req, resp) => {
    const html: string = await jsxToHtml(<div>hello</div>);
    resp.status(200).set({ 'Content-Type': 'text/html' }).end(html);
})
tsconfig.json는 jsxToHtml을 사용하여 *.tsx를 번역하려면 다음과 같이 구성해야 합니다.{
    "compilerOptions": {
//...
        "jsx": "react",
        "jsxFactory": "jsxToHtml.createElement",
        "jsxFragmentFactory": "jsxToHtml.Fragment",
//...
}
비동기 컨텍스트
jsxToHtml을 node.js의 대안으로 사용할 수 있습니다
async_hooks.런타임 트릭이 없으며 모든 환경(deno, cloudflare 작업자 등 포함)에서 작동합니다.
test('component with context', async () => {
    const C1 = async (props: {}, ctx: { msg: string }) => {
        await new Promise<void>(resolve => resolve());
        return <div>{ctx.msg}</div>
    }
    const result = <context msg="hello"><C1 /></context>
    expect(await jsxToHtml(result, { msg: 'original msg' })).toBe('<div>\nhello\n</div>');
})
컨텍스트는 자동으로 트리 아래로 전달됩니다.
<context>는 중간에 컨텍스트를 변경하는 내장 구성 요소입니다.
                Reference
이 문제에 관하여(jsx를 서버측 HTML 템플릿으로 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/taowen/use-jsx-as-server-side-html-template-3k40텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)