반응형
Vuejs 로 작업중일때 router를 통해 화면을 다른 vue로 바꾸면서 Get/Post로 데이터를 보내고 싶을때가 있다.
이럴때 사용하면된다.
Send.vue ===> Receive.vue 로 이동하는 경우를 가정하자.
router.js
import Vue from "vue";
import VueRouter from "vue-router";
//vue router
Vue.use(VueRouter);
const routes = [
{ path: "/Send", component: require("./pages/Send.vue").default },
{ path: "/Receive", component: require("./pages/Receive.vue").default, name:"ReceiveTest" }
];
const router = new VueRouter({
mode: "history", //removes # (hashtag) from url
base: "/",
fallback: true, //router should fallback to hash (#) mode when the browser does not support history.pushState
routes, // short for `routes: routes`
});
export default router;
Post를 사용하기 위해서는 꼭 router에 name 값을 지정해줘야한다. 이유는 하단에.
Send.vue 의 script단
=> 데이터를 보내는 vue
//router.vue의 경로로 설정해주세요.
import router from "../../router";
export default {
//methods 부분만 기입하겠습니다. 필요한 곳에 click이든 event로든 사용하시면됩니다.
methods: {
GetTest(item) {
//라우터에서 지정한 path 값
router.push({ path: "/Receive", query: { id: "Get 확인" } });
},
PostTest(item) {
//라우터에서 지정해준 name 값
router.push({ name: "ReceiveTest", params: { id: "Post 확인" } });
}
}
}
Receive.vue 의 script단
==> 데이터를 받는 vue
export default {
name: "Receive",
data() {
return {
//Get으로 받았을 경우
id: this.$route.query.id,
//Post로 받았을 경우
id: this.$route.params.id,
};
},
created() {
//Get으로 받았을 경우
console.log(this.$route.query.id);
//Post로 받았을 경우
console.log(this.$route.params.id);
},
};
created 에서 받아 axios등으로 데이터를 불러와 세팅을해도되고
data 에 담아 필요한곳에 사용하면된다.
반응형
'Web > Js' 카테고리의 다른 글
(VueJs) string text to Html Convert / 일반 텍스트를 HTML 태그로 변환하기 (0) | 2020.06.05 |
---|---|
JS 팝업 레이어 만들기 / popup layer (0) | 2020.06.02 |
자바 스크립트의 세 번째 시대 (1) | 2020.05.28 |
[Web][VueJS] v-for과 key, 그리고 성능사이의 관계 (0) | 2020.05.27 |
Vue.js 라이프사이클/생명주기 이해하기 (0) | 2020.05.26 |