Vueでページの移動をComponentで検知する方法($route・watch・computed)

Vue_RouteCheck

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、Vueでページの移動をComponentで検知する方法($route・watch・computed)について解説していきます。

Vueでページの移動をComponentで検知する方法($route・watch・computed)

computedで、ページの移動をCheckする

computedで、$routeにアクセスして、ページの移動をCheckする方法は、よく使用します。

computed: {
  // 現在のURLパスのTop_Pathを取得する
  currentTopPath() {
    return this.$route.path.split("/")[1];
  },
},

watchで、ページの移動をCheckする

watch でページの移動をCheckする方法も使えます。

// 監視対象のData: 変更検知をwatchする
watch: {
  // Pathの変化: Page移動を監視する
  $route(newRoute, oldRoute) {
    console.log("newRoute", newRoute);
    console.log("oldRoute", oldRoute);
    const topPath = newRoute.path.split("/")[1];
    console.log("topPaht", topPath);
  },
},

SampleCode全文

SampleCode全文は、次のとおりです。

<template>
  <div>
    <h2>Sample_Vue_Template</h2>
    <div class="login_btn" @click="onClickLogin">
      <a v-text="loginText" :style="loginLinkStyle"></a>
    </div>
  </div>
</template>
<script>
export default {
  name: "SampleComponent",
  components: {},
  props: {
    loginLinkStyle: {
      type: Object,
      default: () => {
        return {};
      },
    },
  },
  data() {
    return {
      loginText: "ログイン",
    };
  },
  computed: {
    // 現在のURLパスのTop_Pathを取得する
    currentTopPath() {
      return this.$route.path.split("/")[1];
    },
  },
  // 監視対象のData: 変更検知をwatchする
  watch: {
    // Pathの変化: Page移動を監視する
    $route(newRoute, oldRoute) {
      console.log("newRoute", newRoute);
      console.log("oldRoute", oldRoute);
      const topPath = newRoute.path.split("/")[1];
      console.log("topPaht", topPath);
    },
  },
  methods: {
    // LoginPage
    onClickLogin() {
      this.$router.push({
        path: "/login",
      });
    },
  },
  created() {
    // Routing情報
    console.log($route);
  },
};
</script>
<style scoped>
.bzu_login_btn {
  background-color: #fff;
}
.bzu_login_btn:hover {
  background-color: rgba(128, 128, 128, 0.5); /* RGB値と透明度の値 */
}
</style>

JavaScript書籍 Ver. 中級-上級者向け

JavaScript書籍 Ver. 初級者向け

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

最近の投稿