React Routing
Understanding The Fundamentals of Routing in React λ΄μ©μ λ²μνκ³ , μΆκ°μ μΈ μ€λͺ μ λ§λΆμμ΅λλ€.
λΌμ°ν (Routing) μ 리μ‘νΈ μ΄ν리μΌμ΄μ μμμ μ¬μ©μκ° URLμ μ λ ₯νκ±°λ μ΄λ€ μμ(λ§ν¬, λ²νΌ, μμ΄μ½, μ΄λ―Έμ§ λ±)μ ν΄λ¦νμ λ μμ λ‘κ² μ΄λν μ μλλ‘ νλ κΈ°λ₯μ λλ€.
λ·°μ μ νμ΄ μλ κ°λ¨ν νλ‘μ νΈλ₯Ό λμ΄ νλμ λ·°μμ λ€λ₯Έ λ·°λ‘ μ νμ΄ νμνλ€λ©΄ 리μ‘νΈμ λΌμ°ν μ λν΄ μκ³ μμ΄μΌ ν©λλ€.
μ΄ μ±ν°μμ μ°λ¦¬λ 리μ‘νΈ μ΄ν리μΌμ΄μ μ λΌμ°ν μ λν΄ μμλ³΄κ² μ΅λλ€. λΌμ°ν μ΄ κ°λ₯νλλ‘ μ΄ν리μΌμ΄μ μ νμ₯νλ €λ©΄ React-Router λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©ν©λλ€.
React-Router λΌμ΄λΈλ¬λ¦¬λ 3κ°μ§λ‘ λλ©λλ€.
react-router: μ½μ΄ λΌμ΄λΈλ¬λ¦¬ μ λλ€. react-router-domκ³Ό react-router-nativeλ₯Ό ν©μΉ ν¨ν€μ§ μ λλ€.
react-router-dom: μΉ μ΄ν리μΌμ΄μ κ°λ°μ μ¬μ©λ©λλ€.
react-router-native: λͺ¨λ°μΌ μ΄ν리μΌμ΄μ κ°λ°μ μ¬μ©λ©λλ€.
μν©μ λ°λΌμλ react-router λΌμ΄λΈλ¬λ¦¬λ₯Ό μ€μΉν νμμμ΄ react-router-domμ΄λ react-router-native μ€μμ μ νν©λλ€. react-router-domκ³Ό react-router-native λͺ¨λ react-router λΌμ΄λΈλ¬λ¦¬μ κΈ°λ₯λ€μ λΆλ¬λ€μΌ μ μμ΅λλ€.
μΉ μ΄ν리μΌμ΄μ μ μ μνλ μ΄ νλ‘μ νΈμμλ react-router-domμ μ¬μ©ν©λλ€.
Routers(λΌμ°ν°)
react-router packageμλ λμ νλ«νΌμ λ°λΌ νμ©ν μ μλ μ¬λ¬ λΌμ°ν°κ° ν¬ν¨λμ΄ μμ΅λλ€. μ¬κΈ°μλ BrowserRouter
, HashRouter
, MemoryRouter
λ± μ¬λ¬ λΌμ°ν°κ° μμ΅λλ€.
μ°λ¦¬κ° λ§λ€κ³ μλ λΈλΌμ°μ κΈ°λ°μ μ΄ν리μΌμ΄μ
μ BrowserRouter
μ HashRouter
κ° μ ν©ν©λλ€.
BrowserRouter
λ μ¬λ¬ νμ
μ URLμ λ€λ£¨λ λμ μΈ μλ²λ₯Ό κ°μ§ μ΄ν리μΌμ΄μ
μ μ¬μ©λ©λλ€. λ°λ©΄μ HashRouter
λ μλ²κ° μλ €μ§ νμΌμ λν μμ²μλ§ μλ΅νλ μ μ μΈ μΉ μ¬μ΄νΈμ μ¬μ©λ©λλ€.
μ°λ¦¬λ λμ μΈ μλ²λ₯Ό κ°μ νκ³ BrowserRouter
λ₯Ό μ¬μ©νκ² μ΅λλ€. μ£Όλͺ©ν λ§ν μ μ λͺ¨λ λΌμ°ν°κ° μ€μ§ νλμ μμλ§ λ°μ μ μλ€λ κ²μ
λλ€.
μ΄ μμ μμ <App/>
μ»΄ν¬λνΈλ <BrowserRouter>
μ»΄ν¬λνΈμ μμμ
λλ€. μ΄μ App μ»΄ν¬λνΈ μ μ΄λμμλ λ°μν μ μμ΅λλ€. νμ§λ§ λͺ¨λ λΌμ°ν°λ₯Ό κ·Έλ£Ήννμ¬ λμΌν μμΉμ λ°°μΉνλ κ²μ΄ μ’μ΅λλ€. (λμ€μ μ΄ λΆλΆμ λ μΈκΈνκ² μ΅λλ€.)
History
κ° λΌμ°ν°λ history κ°μ²΄λ₯Ό μμ±νμ¬ νμ¬ μμΉλ₯Ό μΆμ νκ³ , μ΄ μμΉκ° λ³κ²½λ λλ§λ€ μ΄ν리μΌμ΄μ μ λ€μ λ λλ§ν©λλ€. λλ¬Έμ λ€λ₯Έ 리μ‘νΈ λΌμ°ν° μ»΄ν¬λνΈλ€μ history κ°μ²΄κ° νμ¬μ μ‘΄μ¬νλ κ²μ μ κ²½μλλ€. μ΄κ²μ΄ λΌμ°ν° μ»΄ν¬λνΈλ€μ΄ λΌμ°ν° λ΄λΆμμ λ λ λμΌ νλ μ΄μ μ λλ€.
<BrowserRouter>
λ HTML5 history APIλ₯Ό μ¬μ©νμ¬ μ¬μ©μ μΈν°νμ΄μ€κ° λΈλΌμ°μ μ£Όμ νμμ€μ URLκ³Ό λκΈ°νλλλ‘ μ μ§ν©λλ€.
λΌμ°ν°λ‘λΆν° μμ±λ history κ°μ²΄λ μ¬λ¬ μμ±μ κ°μ§λλ° κ·Έ μ€ νλλ κ°μ΄ κ°μ²΄μΈ location μμ±μ λλ€. location μμ±μ΄ μ°λ¦¬κ° μ΄ μ±ν°μμ κ°μ₯ μ€μ μ μΌλ‘ 보λ λΆλΆμ λλ€. (λ€λ₯Έ μμ±μ μ΄ μ± μ λ²μλ₯Ό λκΈ° λλ¬Έμ λλ€.)
λΈλΌμ°μ μ μ΄μ μμ κ° λ λλ§ λ λ, history κ°μ²΄κ° μμ±λ κ²μ React DevTool μ°½μμ νμΈν μ μμ΅λλ€.
history κ°μ²΄ μμ location κ°μ²΄λ μλμ κ°μ ꡬ쑰λ₯Ό κ°μ§κ³ μμ΅λλ€.
location κ°μ²΄μ μμ±λ€μ μ΄ν리μΌμ΄μ URLλ‘λΆν° νμλ κ²μ λλ€.
Last updated