๊ด€๋ฆฌ ๋ฉ”๋‰ด

Bin's Blog

Router Push params ์˜ค๋ฅ˜ ๋ณธ๋ฌธ

Vue.js

Router Push params ์˜ค๋ฅ˜

hotIce 2023. 7. 14. 21:17
728x90

๐Ÿค” ์–ด์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค๊ฐ€ ๋ฐœ๊ฒฌํ•œ ๋ฐ”๋ณด๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๊ณ ์ž ๊ธ€์„ ๋‚จ๊ธด๋‹ค. Vue.js์—์„œ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋ ค๋ฉด $router.push๋ฅผ ํ†ตํ•ด์„œ ์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์—ฌ๊ธฐ์„œ ๋‚˜๋Š” ํ˜„์žฌ ํŽ˜์ด์ง€์—์„œ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ๋•Œ ํ˜„์žฌ ํŽ˜์ด์ง€์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ฃผ๊ณ  ์‹ถ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์งฐ๋‹ค. 

this.$router.push({
      name: "randomanswerdetail",
      params: {
        name: message.answer,
        mbti: message.mbti,
        user: message.userID,
        id: message.id,
   },
});

๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ, ์ด๋™ํ•œ ํŽ˜์ด์ง€์—์„œ message.answer๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค.

async completed() {
    try {
      if (this.content) {
          const formData = {
            id: this.$route.params.id,
            answer: this.content,
          };
          await axios.put(
            `/random/answer/update/${this.$route.params.id}`,
            formData,
            { withCredentials: true }
          );
        }
      } catch (error) {
        console.log(error);
      }
    this.$router.go(-1);
},

async await ๋ฌธ๋ฒ•์„ ์ด์šฉํ•ด์„œ ๊ธ€์˜ ๋‚ด์šฉ์„ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๊ณ  ๋‚˜๋ฉด this.$router.go(-1)๋ฅผ ํ•ด์„œ ์ด์ „ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ–ˆ๋‹ค.

๊ทผ๋ฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹คโ—๏ธโ—๏ธ 

์ด์ „ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€๋‹ˆ ์ƒํƒœ๊ฐ€ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜์ง€ ์•Š๊ณ  ์ฒ˜์Œ์— router.pushํ•  ๋•Œ params๋กœ ๋„˜๊ฒจ์คฌ๋˜ ํŽ˜์ด์ง€์— ๊ฐ”๋‹ค ์˜ค๋‹ˆ ์ƒํƒœ๊ฐ€ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜๋Š” ์ด์ƒํ•œ ์ผ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. 

๋ฌธ์ œ๋Š”, params๋Š” ๊ทธ๊ฒƒ์„ ๋ณด๋‚ด์ค€ ๋ถ€๋ชจ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ๋ฐ์ดํ„ฐ๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์ด๋‹ค. ๊ทธ๋ž˜์„œ ์•Œ๊ฒŒ๋œ ์‚ฌ์‹ค์€ params๋กœ๋Š” id๋‚˜ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’๋“ค์„ ๋„ฃ์–ด์„œ ์ „๋‹ฌํ•ด์ฃผ๊ณ  ๊ทธ๊ฒŒ ์•„๋‹Œ ๊ฒƒ์€ ํ•ด๋‹น ํŽ˜์ด์ง€์—์„œ get ์š”์ฒญ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ณ  ๋‹ค์‹œ putํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด์•ผํ•œ๋‹ค. 

 

 ๐Ÿ‘‰ ์ˆ˜์ • ํ›„(๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’๋“ค๋งŒ ์ „๋‹ฌ)

selectMessage(message) {
     this.$router.push({
       name: "randomanswerdetail",
       params: {
         id: message.id,
         mbti: message.mbti,
       },
    });
 },

 

728x90