-
Notifications
You must be signed in to change notification settings - Fork 111
Description
์๋
ํ์ธ์.
์น๋ทฐ์ฉ React ์น ๊ตฌํ์ stackflow๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ ๊ฐ ๋ง๋๋ ค๋ ์ฑ์์๋ Activity๋ฅผ ์ด๋ํ ๋ push๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
const { push } = useFlow();
...
<button onClick={() => push(...)}>activity ์ด๋</button> ๊ทธ๋ฐ๋ฐ, ์๋ก์ด Activity๊ฐ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ๋ฑ์ฅํ๋ ์๊ฐ์ ๋ฑ์ฅํ๋ Activity์ ์ค์์ดํ ๋ค๋ก๊ฐ๊ธฐ ์์ญ์ (์ค์์ดํ ๋ค๋ก๊ฐ๊ธฐ ํ๋ฏ์ด)๋๋๊ทธ ํ๋ค๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํฉ๋๋ค.
- ์ฌ์ฐ๋ ์ฌ์ง
(ํ๋ฉด์ด ๋์ด๊ฐ๋ค๊ฐ ์ค๊ฐ์ ๋ฉ์ถฐ์๋ ๋ชจ์ต)
- ์ฌ์ฐํ๋ ์์
https://github.com/user-attachments/assets/c6720cd5-f1e3-4e9d-9b77-32a51c601b4a
๊ทธ๋๋ ์์ ๊ฒฝ์ฐ๋ popํจ์๋ฅผ ํธ์ถํ๋ ๋ฒํผ์ ๋๋ฌ ์ฑ์ ๋ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ historySyncPlugin์ ์ฌ์ฉํ๊ณ ์๋ ๊ฒฝ์ฐ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฐํ๋ฉด ์ฑ์ด ๋ฉ์ถฐ๋ฒ๋ฆฝ๋๋ค.
์๋ฌด๊ฒ๋ ๋๋ฆฌ์ง ์๋๋ผ๊ตฌ์.
export const { Stack, useFlow } = stackflow({
transitionDuration: 350,
activities: { MainActivity, PlaceDetailActivity },
plugins: [
basicRendererPlugin(),
basicUIPlugin({
theme: 'cupertino',
}),
// historySyncPlugin ์ฌ์ฉ ์ค
historySyncPlugin({
routes: {
MainActivity: '/',
PlaceDetailActivity: '/place/:idx',
},
fallbackActivity: () => 'MainActivity',
useHash: false,
}),
],
});์ด๋ฐ์์ผ๋ก historySyncPlugin์ ๋ฃ์ ๊ฒฝ์ฐ ์ด๋ค ์์ญ์ ํฐ์นํด๋ ํฐ์น๊ฐ ๋์ง ์๊ณ ๋ฉ์ถฅ๋๋ค.
๋น๊ทผ์์ ์น๋ทฐ๋ก ๋ง๋ค์์ ๊ฒ์ผ๋ก ์ถ์ ๋๋ ํ์ด์ง์์ ๋น์ทํ๊ฒ ์ฌ์ฐํด๋ดค๋๋ฐ์ ๋น๊ทผ ์ฑ์์๋ ์ฌ์ฐ์ด ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
- ์ฌ์ฐ ๊ฒฐ๊ณผ ์์
https://github.com/user-attachments/assets/64071c4f-0eb4-46de-adcf-81764c1b0821
์ฌ์ฐ ๋ฐฉ๋ฒ: ๋น๊ทผ ์ฑ ์ ์ -> Community ๋ฐํ
ํญ ํด๋ฆญ -> ์๋ฌด ๊ฒ์๊ธ ํด๋ฆญ -> ์๋ก์ด Acitivity๊ฐ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ๋์ด์ฌ ๋ ํ์ด๋ฐ ๋ง๊ฒ ๋ค๋ก๊ฐ๊ธฐ ์ค์์ดํ
(10๋ฒ ์ ๋ ์๋ํ๋ฉด ํ ๋ฒ ๊ผด๋ก ์ฌ์ฐ์ด ๋๋ ๊ฒ ๊ฐ์์)
๋จ์ IOS ๋ฒ๊ทธ์ธ์ง stackflow๋ฒ๊ทธ์ธ์ง๋ ํ๋จ์ด ๋์ง ์์ต๋๋ค.
๊ทธ๋ผ์๋ ํน์๋ชฐ๋ผ ์ด์์ ๋จ๊น๋๋ค.
์ข์ ์คํ์์ค ๋ง๋ค์ด์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.