Vue中router兩種傳參方式
1.Vue中router使用query傳參
相關Html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../js/vue-2.4.0.js"></script>
<script src="../js/vue-resource-1.3.4.js"></script>
<!--1.引入vue-router-->
<script src="../lib/vue-router-3.0.1.js"></script>
<link rel="stylesheet" href="../bootstrap-3.3.7-dist/css/bootstrap.min.css">
<style>
.myactive {
color: red;
font-size: 20px;
}
.v-enter,
.v-leave-to {
opacity: 0;
transform: translateX(140px);
}
.v-enter-active,
.v-leave-active {
transition: all 0.5s ease;
}
</style>
</head>
<body>
<div id="app">
<router-link to="/login?id=10&name='zhangsan'">登錄</router-link>
<router-link to="/register">注冊</router-link>
<!--router-view,提供的用來當做占位符的 router中的規則會展現到這個里面去-->
<transition mode="out-in">
<router-view></router-view>
</transition>
</div>
<script>
var login = {
template: '<h1>這個是登錄組件--- {{$route.query.id}}----{{$route.query.name}} </h1>',
data:function () {
return {
msg:'123'
}
},
created:function () {
console.log(this.$route);
}
}
var register = {
template: '<h1>注冊組件</h1>'
}
//在new
var routerObj = new VueRouter({
//這個配置對象中的route表示路由匹配規則的意思
//1.path,表示監聽,路由的連接地址
//2.component 表示路由匹配到的path
routes: [
//注意:component屬性值,必須是一個組件模板對象,不能是引用名稱
{path: '/', redirect: '/login'},
{path: '/login', component: login},
{path: '/register', component: register}
],
linkActiveClass: 'myactive'
})
var vm = new Vue({
el: "#app",
data: {},
methods: {},
router: routerObj //將路由規則對象,注冊到vm實例上,用來監聽地址對象
})
</script>
</body>
</html>
2Vue中router使用params傳參
相關Html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../js/vue-2.4.0.js"></script>
<script src="../js/vue-resource-1.3.4.js"></script>
<!--1.引入vue-router-->
<script src="../lib/vue-router-3.0.1.js"></script>
<link rel="stylesheet" href="../bootstrap-3.3.7-dist/css/bootstrap.min.css">
<style>
.myactive {
color: red;
font-size: 20px;
}
.v-enter,
.v-leave-to {
opacity: 0;
transform: translateX(140px);
}
.v-enter-active,
.v-leave-active {
transition: all 0.5s ease;
}
</style>
</head>
<body>
<div id="app">
<router-link to="/login/10">登錄</router-link>
<router-link to="/register">注冊</router-link>
<transition mode="out-in">
<router-view></router-view>
</transition>
</div>
<script>
var login = {
template: '<h1>這個是登錄組件--- {{$route.params.id}} </h1>',
data:function () {
return {
msg:'123'
}
},
created:function () {
console.log(this.$route.params);
}
}
var register = {
template: '<h1>注冊組件</h1>'
}
var routerObj = new VueRouter({
routes: [
{path: '/login/:id', component: login},
{path: '/register', component: register}
],
linkActiveClass: 'myactive'
})
var vm = new Vue({
el: "#app",
data: {},
methods: {},
router: routerObj //將路由規則對象,注冊到vm實例上,用來監聽地址對象
})
</script>
</body>
</html>