vue学习笔记(路由命名、视图、redirect、alias、router.push、路由组件传参)

本文介绍了Vue.js中的路由操作,包括路由命名、使用命名视图来展示多个组件,编程式导航的实现,如push和replace方法,以及重定向和别名的设置。同时详细讨论了如何通过路由组件传参以解耦合,确保页面间通信的有效性。
摘要由CSDN通过智能技术生成

1.路由命名


<router-link to="/user/1/name/admin">admin</router-link>//可以用以下方式实现
<router-link :to="{name:'staff',params:{id:1,username:'admin'}}">admin</router-link>|

2.命名视图

一个路由可以关联多个组件组成

components:{
                        default:UserInfos,
                        home:Home,
                        about:About,

                    }
<router-view name="home"></router-view>
 <router-view name="about"></router-view>

3.编程式导航

$this.router.push 注意区分this.$route和this.$router

在user.vue中添加,则点击admin或tourist后跳转到如下页面

mounted(){
        this.$router.push({name:'staff',params:{id:3,username:'testuser'},repalce:true});
       // this.$router.replace({name:'staff',params:{id:3,username:'testuser'}});
    }
this.$router.push('/test');
this.$router.push({name:'staff',params:{id:3,username:'testuser'}});
// 带查询参数,结果是 /register?plan=private
router.push({ path: '/register', query: { plan: 'private' } })

// 带 hash,结果是 /about#team
router.push({ path: '/about', hash: '#team' })
// `params` 不能与 `path` 一起使用
router.push({ path: '/user', params: { username } }) // -> /user

4.重定向redirect和别名alias:

{ 
                path: '/about2', 
                redirect:'/about',
                
            },
            { 
                path: '/about', 
                alias:'/myabout',
                name:'aboutpage',
                component: About 
            },

输入about2后 自动变为about,而别名不会修改,是让两个路径指向了同一个component

也可以重定向到命名的路由

const routes = [{ path: '/home', redirect: { name: 'homepage' } }]
{ 
                path: '/about2', 
                redirect:{name:'aboutpage'},
                
            }

5.路由组件传参——解决路由的紧耦合

路由数组中添加props:true


                path: '/user/:id(\\d+)/name/:username', 
                name:'staff',
                component: User ,
                props:true,

使用页面接收数组,则可以在页面中直接使用

My id is{{ id }},name is {{ username }}
    <p>  
        <router-link :to="'/user/'+  id + '/name/'+username+'/test'">嵌套测试</router-link> 
    </p>
export default {
    name:'UserVue',
    props:['id','username'], 

也可以强制传递参数

path: '/user/:id(\\d+)/name/:username', 
name:'staff',
component: User ,props:{id:5},

点击admin后

点击嵌套测试后

因为点击嵌套测试后路径中使用的usrname没有使用对应的方式传递进来,所以是undefine

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值