Vue路由中 query和params传参

37 篇文章 0 订阅
10 篇文章 0 订阅

vue-router 中 query和params传参

两者有区别,直白点就是:query相当于get请求,页面跳转的时候,可以在地址栏看到请求参数;而params相当于post请求,参数不会再地址栏中显示

1.query

地址栏:
在这里插入图片描述

<div id='app'>
        <!-- 如果子啊路由中,使用 查询字符串,给路由传递参数,则不需要修改 路由规则的 path 属性 -->
        <router-link to="/login?id=10&name=zs">登录</router-link>
        <router-link to="/register">注册</router-link>
        <router-view></router-view>
    </div>
var router = new VueRouter({
            routes: [{
                path: '/login',
                component: login
            }, {
                path: '/register',
                component: register
            }]
        })

完整的:

<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <meta http-equiv='X-UA-Compatible' content='ie=edge'>
    <title></title>
    <script src='../lib/vue.js'></script>
    <script src="../lib/vue-router.js"></script>
</head>
<body>
    <div id='app'>
        <!-- 如果子啊路由中,使用 查询字符串,给路由传递参数,则不需要修改 路由规则的 path 属性 -->
        <router-link to="/login?id=10&name=zs">登录</router-link>
        <router-link to="/register">注册</router-link>
        <router-view></router-view>
    </div>

    <script>
        var login = {
            template: '<h1>登录 ---{{this.$route.query.id}}--{{$route.query.name}}</h1>',
            data() {
                return {
                    // msg:this.$route.query.id
                    msg: '123'
                }
            },
            created() { //组件的生命周期钩子函数
                console.log(this.$route);
                console.log(this.$route.query.id)

            }
        }
        var register = {
            template: '<h1>注册</h1>'
        }
        
        var router = new VueRouter({
            routes: [{
                path: '/login',
                component: login
            }, {
                path: '/register',
                component: register
            }]
        })
        var vm = new Vue({
            el: '#app',
            data: {},
            methods: {},
            router: router
        });
    </script>
</body>

</html>
2.params

地址栏:
在这里插入图片描述

<div id='app'>
        <!-- 如果在路由中,使用 查询字符串,给路由传递参数,则不需要修改 路由规则的 path 属性 -->
        <router-link to="/login/12/李四">登录</router-link>
        <router-link to="/register">注册</router-link>
        <router-view></router-view>
    </div>
   var router = new VueRouter({
            routes: [{
                path: '/login/:id/:name', //只在这里传参,而上边router-link不传对应的参数,则路由匹配不到,不会显示
                component: login
            }, {
                path: '/register',
                component: register
            }]
        })
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值