编程式导航是用JS代码跳转, 声明式导航使用 创建 a 标签来定义导航链接标签
第一步在main.js中
// 对one组件路由配置
{
path: "/one",
name: "one", // 别名:注意别名不带/
component: One
},
{
path: "/one/:id",
name: "one", // 别名
component: One
},
在list组件中
<template>
<div>
<h1>我是商品列表</h1>
<ul>
<li @click="goto(1)">商品1</li>
<li @click="goto(2)">商品2</li>
<li @click="goto(3)">商品3</li>
<li @click="goto(4)">商品4</li>
</ul>
</div>
</template>
<script>
export default {
methods: {
goto(id) {
// 1.去 商品详情页
// this.$router.push({
// path:"/one"
// });
// 2.去同一个组件,显示不同的内容!
// 点击的时候,需要给人家传一个不同id
// 参数写法:
// /one?id=1
// /one/:id
// 好理解写法:
this.$router.push({
// path:"/one?id="+id
path:"/one/"+id
});
// query官方:
// this.$router.push({
// path: "/one",
// query:{
// // 参数名:形参
// id:id,
// },
// });
// params官方:
// this.$router.push({
// name:"one",
// params:{
// id:id
// }
// });
},
},
};
</script>
<style>
</style>
在one组件中
<template>
<div>
<h3>我是其中某个商品的展示 JS方式转跳路由:</h3>
<p>{{$route.query.id}}</p>
<p>{{$route.params.id}}</p>
</div>
</template>
<script>
export default {
created(){
console.log(this.$route.query.id);
}
}
</script>
<style>
</style>