Vue:vue-router

基本用法用法

安装


npm install --save vue-router

引入

main.js

import VueRouter from 'vue-router';
Vue.use(Vuerouter);

const Routers = [
  {
	path:'/path',
    component:(resolve) => require(['./views/about.vue'],resolve)
 },
  {
  	path:'/about',
    component:(resolve) => require(['./views/about.vue'],resolve)
  }
];

index.vue

<template>
	<div>首页</div>  
</template>
<script>
	export default{

	}
</script>

//about.vue  
<template>
  <div>介绍页</div>
</template>
<script>
export default {

}
</script>

params 和query传参

<div class="course-item" v-for="course in courses" :key="course.id">
        <router-link :to="{name:'CourseShow',params:{id:course.id},query:{page:10}}">
            <img :src="course.img" width="240" alt="">
            <h5>{{course.name}}</h5>
            <span>价格:{{course.price}}元</span>
        </router-link>
    </div>

获取参数

//获取路由中的params参数 /show/:id  ,/show/10
this.$route.params.id

//获取路由中query参数:  /list?page=12
this.$route.query.page

路由跳转

...
{
 path:'*',
 redirect:'/index'
},
{
path:'/user/:id',
component:userShow
}
...

组件跳转链接


<template>
  <div>
    <h1>首页</h1>
    <router-link to="/about">跳转到</router-link>
   	replace 不会留下History记录,所以导航不能后退
    <router-link to ="/about" replace></router-link>
  </div>
</template>

this.$router.push()跳转:[常用]

<template>
	<div>
    	<h1>介绍页</h1>
        <button @click="handleRouter">跳转到user</button>
    </div>
</template>
<script>
	export default {
    	methods:{
        	handleRouter(){
            this.$router.push('/user/123');
            //第三种
            //this.$router.replace('/user/123');
            }
        }
    }
</script>

$router其他方法

	//从历史记录中前后跳转
	this.$router.go(-1);  
    this.$router.go(2);

高级用法

路由元字符/数据

//main.js
const Routers = [
{
	path:'/index',
    meta:{
    	title:"首页"
    },
    component:(resolve)=>require(['./views/index.vue'],resolve)
},
{
	path:'/about',
    meta:{
    	title:'关于'
    },
    component:(resolve) => require(['./views/about.vue'],resolve);
},
{
	path:'/user/:id',
    meta:{
    	title:'个人主页'
    },
    component:(resolve) => require(['./views/user.vue'],resolve);
},
{
	path:'*',
    redirect:'/index'
}
];

const router = new VueRouter(RouterConfig);
//全局路由守卫
router.beforeEach((to,from,next)=>{
	window.document.title = to.meta.title;
    next();
})

router.afterEach((to,from,next)=>{
	window.scrollTo(0,0);
});
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jacky张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值