美文网首页
vue-router路由传参

vue-router路由传参

作者: 湘兰沅芷 | 来源:发表于2020-03-03 15:26 被阅读0次

    tip: 用params传参,F5强制刷新参数会被清空,用query,由于参数适用路径传参的所以F5强制刷新也不会被清空。(传参强烈建议适用string)
    也可以选用sessionstorage/localstorage/cookie存储

    1.params:参数不会显示到路径上
    配置路径rutes

    export default new Router({
      routes: [
        {
           path: '/path1',
           name: 'path1',//一定要写name,params必须用name来识别路径
           component: Path1
        }
      ]
    })
    

    2.传递参数:用$router

    <!-- test-vue-router页面 -->
    <template>
      <div>
        <a @click="routerTo()">query传参</a>
      </div>
    </template>
    <script>
    export default {
      methods: {
        routerTo() {
          this.$router.push({
            name: `TestVueRouterTo`,
            params: {
              page: '1', code: '8989'
            }
          })
        }
      }
    }
    </script>
    

    3.接受参数: 用$route

    <!-- test-vue-router-to页面 -->
    <template>
      <div>
      </div>
    </template>
    <script>
    export default{
      data() {
        return {
          page: '',
          code: ''
        }
      },
      created() {
        this.getRouterData()
      },
      methods: {
        getRouterData() {
          this.page = this.$route.params.page
          this.code = this.$route.params.code
          console.log('page', this.page)
          console.log('code', this.code)
        }
    
      }
    }
    </script>
    

    query: 最好也用name来识别,保持与params一致性,路径传参
    1.路径配置(跟params一样)
    2.参数传递页

    <!-- test-vue-router页面 -->
    <template>
      <div>
        <a @click="routerTo()">query传参</a>
      </div>
    </template>
    <script>
    export default {
      methods: {
        routerTo() {
          this.$router.push({
            name: `TestVueRouterTo`,
         // 只是把query改了,其他都没变
            query: {
              page: '1', code: '8989'
            }
          })
        }
      }
    }
    </script>
    

    3.接受参数

    <!-- test-vue-router-to页面 -->
    <template>
      <div>
      </div>
    </template>
    <script>
    export default{
      data() {
        return {
          page: '',
          code: ''
        }
      },
      created() {
        this.getRouterData()
      },
      methods: {
        getRouterData() {
          // 只是改了query,其他都不变
          this.page = this.$route.query.page
          this.code = this.$route.query.code
          console.log('page', this.page)
          console.log('code', this.code)
        }
    
      }
    }
    </script>
    

    相关文章

      网友评论

          本文标题:vue-router路由传参

          本文链接:https://www.haomeiwen.com/subject/ehfhlhtx.html