owned mediaウェブ制作に役立つコンテンツを発信中!

Vue.jsで動的にリンク先やクエリの値を操作する

最終更新日: Update!!
Vue.jsでアプリケーションを作成していると、動的にリンク先やクエリの値を変更する必要がある場面も多々あるかと思います。今回はそのようなケースでの実装例をメモとして残しておきたいと思います。   まず、Vue.jsでリンクを指定する場合にはaタグではなく、下記のように「router-link」タグを使って設定します。この時に「to」の属性の値に遷移先のパスを指定する形になります。
<router-link to="/PATH/">固定リンク</router-link>
  また、パスの値が動的に生成される場合などで、遷移先のパスが可変する場合には、v-bindディレクティブを使って、値に変数を指定する形になります。
<router-link :to="/PATH/`${id}`">可変リンク</router-link>
  これらはあらかじめテンプレート内にHTMLと合わせて記述するパターンになりますが、JavaScriptで「location.href」のようにプログラム側でページ遷移させるときは少し方法が異なります。今回は、下記のようにセレクトボックスのチェンジイベントで、ページ遷移するような例をサンプルとしてみていきたいと思います。   下記のコードでは、セレクトボックスにチェンジイベントでmethodsに定義した関数を呼び出すようにしています。その関数では、セレクトボックスの値を取得し、その値を「$router.push()」で$routeのパスの値に入るようにしています。 【Vue】
<template>
 <div>
  <select @change="changePath()" ref="element">
   <option value="page-01">ページ1</option>
   <option value="page-02">ページ2</option>
   <option value="page-03">ページ3</option>
  </select>
 </div>
</template>
<script>
 export default {
  methods: {
   changePath() {
    const element = this.$refs.element
    this.$router.push(
     {
       path: element.value
     }
    )
   }
  }
 }
</script>
  実際に実行してみると、選択肢の値が変わった瞬間にページが遷移したのがURLの変化より確認することができます。実際にデベロッパーツール上でも同じく変わっています。このようにVue.jsでは「$router.push()」を使って動的に遷移先を操作する形になります。   $router.push()ではパスの値だけでなく、クエリの値も同様に操作することができます。同じようなコードで、クエリに使う値が入ったセレクトボックスを用意しました。先ほどと違う点としては、$router.push()の引数に入っているオブジェクトで、クエリの値も追加されている点です。 【Vue】
<template>
 <div>
  <select @change="changeQuery()" ref="element">
    <option value="hoge">hoge</option>
    <option value="fuga">fuga</option>
    <option value="piyo">piyo</option>
  </select>
 </div>
</template>
<script>
 export default {
  methods: {
   changeQuery() {
    const element = this.$refs.element
    this.$router.push(
     {
      path: 'sample',
      query: {
       q: element.value
      }
     }
    )
   }
  }
 }
</script>
  実際に実行してみると、クエリに値が入り、$route内にあるqueryの値にも反映されているのが確認でき、このようにパスの値やクエリの値は自由にjavascript側で操作することができます。クエリの値を操作することで、たくさんあるデータをカテゴリ別にアーカイブさせるときなどに役立ちます。  
  今回はVue.jsで動的にリンクやクエリの値を操作する方法についてまとめてみました。慣れるまではいろんなメソッドを覚える必要がありますが、これらはフレームワークを使わないとかなり大変な作業が必要になることも多く、是非覚えておきたいですね。そんな時には下記の書籍がわかりやすくておすすめです!  
  • はてなブックマーク
  • Pocket
  • Linkedin
  • Feedly

この記事を書いた人

Twitter

sponserd

    keyword search

    recent posts

    • Twitter
    • Github
    contact usscroll to top
      • Facebook
      • Twitter
      • Github
      • Instagram