动态路由的配置

动态路由

  • Vue:不同页面之间的传递参数--params
  • 在嵌套vue-router情况下,不同页面之间传递参数可以通过params实现。而params传参分为两种情况:

1.参数在url中显示

首先你要确定自己要传的参数,并在控制路由的文件中的Router中path内添加对应的字段如:

{
              path: '/news/inform/:id',
              // 通知公告
              component: r =>
                require.ensure(
                  [],
                  () => r(require('../pages/children/news/inform.vue')),
                  'web_1-2'
                )
            }

我要传的参数是id。
在你要跳转的组件内定义参数,如:

data(){
    return:id: ''

  • 同时在页面中引入它们,通过router-link跳转(也可以通过点击事件,this.$router.push()跳转),插入对应的字段。注意:如果参数个数不同,将不会出现预期效果!
<router-link :to="{path:'/inform/'+this.id+'}"><button>goto paramsUrl</button></router-link>
  • 通过点击事件就这样。由于我的内容是for循环数据出来的,所以接收和传的都是id
Goinform (id) {
      alert(id)
      this.id = id  这里也可以不赋值,直接把循环出来的id拿过来拼接也可以
      this.$router.push('./inform/' + this.id)
    }


当然,你也可以通过this.$route.params.name来获取参数

2.通过name避免在url显示

  • 通过上面的介绍,相信你也看出来相对应的弊端~不安全。如果用户篡改url中的参数,将会出现我们不想看到的问题。那么如何避免呢?---name

上边对Router中的操作只是改了 path,现在我们在添加一个name参数。

{
  path: '/param',
   name: 'param',
   component: param
},

这里我们通过点击事件进行跳转~

<button @click="goParam">go to param</button>
  • 在methods中编写方法
goParam:function(){
    this.$router.push({name:'param',params:this.stu})
}

posted @ 2019-05-15 14:44  斯塔克林  阅读(1046)  评论(0编辑  收藏  举报