κΈ°λ₯ μ μμ²νκ±°λ λ²κ·Έλ₯Όλ³΄κ³ νμκ² μ΅λκΉ?
κ³€μΆ©.
νμ¬ νλμ 무μμ λκΉ?
νΈμΆ .renderToString()
μ <React.Fragment><div>Hello!</div></React.Fragment>
μμ° <div data-reactroot="">Hello!</div>
.
κ·Έλ¬λ "보μ΄μ§ μλ"React μμ λ΄μ DOM λ£¨νΈ μμμ λ€λ₯Έ λ§μ μ‘°ν©μ data-reactroot=""
μμ΄ λ λλ§λ©λλ€.
μλ₯Ό λ€μ΄ λ€μμ λͺ¨λ μ νμ <div>Hello!</div>
( data-reactroot=""
μ μΈ)λ₯Ό μμ±ν©λλ€.
<React.Fragment><React.Fragment><div>Hello!</div></React.Fragment></React.Fragment>
<Context.Provider><div>Hello!</div></Context.Provider>
<Context.Consumer>{() => <div>Hello!</div>}</Context.Consumer>
<React.StrictMode><div>Hello!</div></React.StrictMode>
νμ¬ λμμ΄ λ²κ·Έ μΈ κ²½μ° μ¬ν λ¨κ³λ₯Ό μ 곡νκ³ κ°λ₯νλ©΄ λ¬Έμ μ λν μ΅μνμ λ°λͺ¨λ₯Ό μ 곡νμμμ€. μλμ JSFiddle (https://jsfiddle.net/Luktwrdm/) λλ CodeSandbox (https://codesandbox.io/s/new) μμ μ λν λ§ν¬λ₯Ό λΆμ¬ λ£μΌμμμ€.
μ μ°Έμ‘°.
μμλλ λμμ 무μμ λκΉ?
μμ μλ div
μμμ data-reactroot=""
λ₯Ό ν¬ν¨νλ λ§ν¬ μ
μ μμ±ν΄μΌνλ€κ³ κ°μ ν©λλ€.
μ΄λ€ λ²μ μ Reactμ μ΄λ€ λΈλΌμ°μ / OSκ°μ΄ λ¬Έμ μ μν₯μ λ°μ΅λκΉ?
λͺ¨λ λ²μ > = 16.7.0, μ΄μ λ²μ μλ λ¬Έμ κ° μμ΅λλ€.
μ΄κ²μ μ¬μν λ¬Έμ μ
λλ€ - λλ λ§ν¬ μ
μ μ¬μ©νμ¬ ν΄λΌμ΄μΈνΈ μΈ‘μμ μ¬μλλ κ²½μ°μλ§ μν₯μ μκ° .render()
보λ€λ .hydrate()
κΆμ₯νμ§ μμ΅λλ€ μ¬μ© -. κ·Έλ¬λ .render()
λ₯Ό μ¬μ©νμ¬ μ¬μ ννλ κ²μ μ¬μ ν ββ곡μμ μΌλ‘ μ§μλ©λλ€.
μμ μ ꡬννκ³ PRμ ν μ μμ΅λλ€. κ·Έλ¬λ μμλλ λμμ΄ λ΄κ° μκ°νλ κ²κ³Ό μ΄κ²μ΄ μ€μ λ‘ λ²κ·ΈλΌλ κ²μ λꡬλ μ§ νμΈν μ μμ΅λκΉ?
μ΄κ²μ λ²κ·Έμ²λΌ λ€λ¦½λλ€. μμ μ νμν©λλ€.
ν° νμΈ. μ μν λ΅λ³μ κ°μ¬λ립λλ€. κ°λ₯ν ν 빨리 PRμ μ μΆνκ² μ΅λλ€. μμΌλ‘ λͺ μ£Ό λ΄μ μ μΆν΄μΌν©λλ€.
PR # 15023μ μ μΆνμ΅λλ€.
@gaearon λꡬλ μ§ PR # 15023μμ λ΄ μμ μ¬νμ λ³Ό κΈ°νκ° μμμ΅λκΉ?
μ΄μ react-apolloκ° Context APIλ₯Ό μ¬μ©νκ³ μκΈ° λλ¬Έμ λΉλκ° μμλμμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
ν° νμΈ. μ μν λ΅λ³μ κ°μ¬λ립λλ€. κ°λ₯ν ν 빨리 PRμ μ μΆνκ² μ΅λλ€. μμΌλ‘ λͺ μ£Ό λ΄μ μ μΆν΄μΌν©λλ€.