前端Vue2-Day61

路由传参params:

① 配置路由,声明接收params参数:在path路径以占位符:形式声明参数!

export default new VueRouter({
    routes: [{
        path: '/father',
        component: Father,
        children: [{
            name: 'son',
            path: 'son/:data1/:data2',
            component: Son,
        }]
    }]
})

 

② 传递参数:若使用对象写法,则不能声明path,必须使用name进行跳转!

<router-link to="`/father/son/${data1}/${data2}`">字符串写法</router-link>
<router-link to="{
    name:'son',
    params: {
        data1,
        data2
    }
}">对象写法</router-link>

 

③ 接收参数:$route.params.xxx

 

路由props配置:让路由组件更方便的接收参数

旧版:$route.query.data或$route.params.data

在路由内使用props配置,在组件内直接用props接收:

export default new VueRouter({
    routes: [{
        path: '/demo',
        component: Demo,
        // 第一种 使用对象形式(只能传输死数据)
        props: { data },
        // 第二种 使用布尔值,为true会将路由携带的params参数直接传入组件
        props: true,
        // 第三种 使用函数,默认参数$route,直接传值
        props($route) {
            return {
                id: $route.query.id,
                name: $route.query.name
            }
        },
        // 可以使用连续解构赋值对第三种优化
        props({ query: { id, name } }) {
            return {
                id, 
                name
            }
        }
    }]
})

 

router-link的replace属性:控制跳转是否可以回退

① 作用:控制路由跳转时操作浏览器历史记录的模式。

② 浏览器的历史记录有两种写入方式:为push和replace,push为追加历史记录,replace为替换当前记录。路由跳转时默认为push。

③ 开启replace模式:

 

<router-link to="/home" :replace="true"></router-link>
// 简写
<router-link to="/home" replace></router-link>

 

posted @ 2022-10-28 09:03  HM-7  阅读(26)  评论(0)    收藏  举报