Vue.js 关于router传参那点事儿

Vue-router参数传递

  1. 为何要在router中传递参数
    设想一个场景,当前在主页中,你须要点击某一项查看该项的详细信息。那么此时就须要在主页传递该项的id到详情页,详情页经过id获取到详细信息。
  2. vue-router 参数传递的方式前端

    • Parma传参
      贴代码:
      /router/index.vuevue

      export default new Router({
       routes: [
         {
           path: '/',
           name: 'Home',
           component: Home
         },
         {
           path: '/work',
           name: 'Work',
           component: Work
         }
       ]
         })

      组件Works传递一个work的id到组件Work
      /components/Home/Comtent/Works.vuevue-router

      // 触发它传递一个对象到组件Work
      getIt (id) {
       this.$router.push({
         path: '/work',
         name: 'Work',
         params: {
           id: id
         }
       })
         }

      /components/Work/Index.vuethis

      <template>
          <div class="work">
            work: {{id}}
          </div>
        </template>
        
        <script>
        export default {
          name: 'Work',
          data () {
            return {
              id: this.$route.params.id //拿到id
            }
          }
        }
        </script>

      运行截图:
      Works.pngurl

      Work.png

    • query传参
      将上面的parmas改成query便可,即:spa

      // 传入
       this.$router.push({
      path: '/work',
      name: 'Work',
      query: {
        id: id
      }
       })
       
       ... ...
       
       this.$route.query.id // 获取
  3. parmas与query的区别code

    • query是经过url传递参数,始终显示在url中
    • parmas传参,刷新页面事后就没有数据了,没法将获取到的参数进行保存

总结: 这两种参数的传递方式,各有各的用途,具体的还要本身亲手试一试才知道,前端这个领域,仍是要多多亲自动手实践。component

相关文章
相关标签/搜索