Router๋ฅผ ์ด์ฉํ์ฌ ํ๋ฉด ์ ํ์ ํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ฃผ๋ ๊ฒฝ์ฐ
๋ณดํต ์๋์ ๊ฐ์ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
const pageNm = 'FileName';
const param = {};
const router = useRouter()
router.push({ name: pageNm, params: param });
})
๊ทธ๋ฆฌ๊ณ ๋ฐ์์ค๋ ์ชฝ์ route๋ฅผ ์ด์ฉํ์ฌ ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด ์ฌ์ฉํ ์ ์๋ค.
๊ทธ๋ฐ๋ฐ, param์์ ์ค์ฒฉ๋ ๊ฐ์ฒด๋ฅผ ๋ณด๋ด๋ ๋ฐ๋ ์ชฝ์์ ์ ๋๋ก ๊บผ๋ด์ค์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ ํ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ฉด
- ๋ฐ์ดํฐ ์ก์ ๋ถ๋ถ
const fileName = 'Page';
const param = {
a : 'A',
b : 'B',
bundleData: {
c : 'C',
d : 'D',
},
};
router.push({ name: fileName, params: param });
- ๋ฐ์ดํฐ ์์ ๋ถ๋ถ
console.log(route.params.bundleData); //[Object object]
๋ฐ์์ค๋ ์ชฝ์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ผ ๋, [Object object] ๋ผ๋ ํ์ ๋ง์ ๋ช ์ํด์ค ๋ฟ, ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค์ง ๋ชปํ๋ค.
์ด๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด
๋ณด๋ผ ๋ ๊ฐ Object์ JSON.Stringify๋ก ํ๋ฒ ๋ฌถ์ด์ ๋ณด๋ธ ํ,
๋ฐ์ ๋ ๊ฐ Object์ JSON.parse ์ฒ๋ฆฌ๋ฅผ ํ๋ฉด ๋๋ค.
์ค์ํ ๊ฒ์ ์ route.param ์ ์ฒด์ ๋ํ JSON.parse ์ฒ๋ฆฌ๊ฐ ์๋, ๊ฐ๋ณ Object์ ๋ํ ์ฒ๋ฆฌ์ด๋ค.
๋ณ๊ฒฝ ํ ์์ค
- ๋ฐ์ดํฐ ์ก์ ๋ถ๋ถ
const fileName = 'Page';
const param = {
a : 'A',
b : 'B',
bundleData: JSON.stringify({
c : 'C',
d : 'D',
}),
};
router.push({ name: fileName, params: param });
- ๋ฐ์ดํฐ ์์ ๋ถ๋ถ
route.params.bundleData = JSON.parse(route.params.bundleData);
'๐ Language > Vue' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[vuejs] ๋ผ์ฐํฐ ์ด๋ ์, ์คํฌ๋กค ์ด๋ (0) | 2023.09.22 |
---|---|
[Vuejs] <input> ํ๊ทธ์ ์ ๋ ฅํ ์ /ํ value ๋ฐ์์ค๊ธฐ (Vuejs get old value when on change event) (0) | 2023.07.13 |
[vuejs] ์ด๋ฏธ์ง ์ ๋ก๋ํ์ฌ preview ์กฐํ (FileReader ๋๋ URL.createObjectUrl ์ฌ์ฉ) (0) | 2023.02.15 |
[vuejs] vue-router ์ค์ฒฉ ๋ผ์ฐํ (0) | 2023.02.07 |
[vuejs] vue-router ๋์ ๋ผ์ฐํ (0) | 2023.02.07 |