vue标签
$route

功能说明:路由的设置

方法1  /path?id=

src/router/index.js文件

需要先引入页面

import a1 from '@/article/a1'//命名

然后再使用路由

,{
      path: '/a1',//路劲
      name: 'art',// 名字
      component: a1//命名的模块
    }

image.png

页面使用方法

父页面

<router-link :to="{path:'/a1',query: {id:items.id}}">{{items.title}}</router-link>

我上面的用了v-for

子页面接收参数

data () {
    return {
      aid: this.$route.query.id
    }
  },
  created () {
    console.log(this.aid)//输出测试下
  }

实用

//传值this.$router.push({path:"/menLink",query:{alert:"页面跳转成功"}})

//用query获取值
<p>提示:{{this.$route.query.alert}}</p>



方法2 /path/id

src/router/index.js文件

同样的引入页面

import a2 from '@/article/a2'

配置方法

  { path: '/a2/:id', component: a2, props: true }

id即为传递的参数 多个就  /:id/:ids

连接方法

 <router-link :to="/a2/+items.id">
                {{items.title}}</router-link>

接收参数

 data () {
    return {
      aid: this.$route.params.id
    }
  },
  created () {
    console.log(this.aid)
  }

好了


去掉路由的#

src/router/index.js文件

  mode: 'history',
  base: '/', // 如果项目根目录不为域名,则添加该行

image.png


实用技巧:

上面放的都是列表页面的方法

下面介绍一个单独的,比如我们进入一个页面判断是否登录,然后跳转不同的页面的方法

router.push('home') 
// 对象
this.$router.push({path: '/login?url=' + this.$route.path}); 
// 命名的路由
router.push({ name: 'user', params: { userId: 123 }}) 
// 带查询参数,变成/backend/order?selected=2
this.$router.push({path: '/backend/order', query: {selected: "2"}});
// 设置查询参数
this.$http.post('v1/user/select-stage', {stage: stage})
      .then(({data: {code, content}}) => {            if (code === 0) {                // 对象
                this.$router.push({path: '/home'});
            }else if(code === 10){                // 带查询参数,变成/login?stage=stage
                this.$router.push({path: '/login', query:{stage: stage}});
           }
});
// 设计查询参数对象
let queryData = {};if (this.$route.query.stage) {
    queryData.stage = this.$route.query.stage;
}if (this.$route.query.url) {
    queryData.url = this.$route.query.url;
}this.$router.push({path: '/my/profile', query: queryData});

(1)由于动态路由也是传递params的,所以在 this.$router.push() 方法中path不能和params一起使用,否则params将无效。需要用name来指定页面。及通过路由配置的name属性访问


this.$router.push({name:"menuLink",params:{alert:"页面跳转成功"}})

(2)在目标页面通过this.$route.params获取参数:

<p>提示:{{this.$route.params.alert}}</p>

(3)在目标页面通过this.$route.query 获取参数

//传值
this.$router.push({path:"/menLink",query:{alert:"页面跳转成功"}})

//用query获取值<p>提示:{{this.$route.query.alert}}</p>


相关内容

发表评论

验证码:
点击我更换图片

最新评论