看一下页面效果
看一下效果
先创建一个新的info页面,以便我们观察 在router页面下的index文件里配置相关的路由信息
动态路由传递参数的时候,路由配置哪里设置了几个参数,在传递的时候就需要传递几个参数 const info = () => import('../views/info/index') { path:'/info/:id/:name', name:'info', component:info }在商店页面更改一下router-link
<h1>这里是商店</h1> <ul> <li v-for="item in list" :key="item.id"> <!-- <router-link :to="`/about?id=${item.id}`">{{ item.name }}</router-link> --> <router-link :to="`/info/${item.id}/${item.name}`"> {{ item.name }} </router-link> </li> </ul>还记得上面打印得那张this.$route得图片么?动态路由的参数在params里
动态路由传递的参数需要这样接收this.$route.params.参数 <template> <div> <h1>这里是商品详情页面</h1> <p> {{ this.$route.params.id }} </p> <p> {{ this.$route.params.name }} </p> </div> </template> <script> export default { } </script> 看一下页面效果$router
当前所有的路由对象可以理解为routes就是这个我们配置所有路由的地方$route
当前路由对象用于获取当前路由里面的属性或者方法
当前的页面哪个是活跃的,那么$route就是谁
我们利用$router的push方法进行跳转
<h1>这里是商店</h1> <ul> <li v-for="item in list" :key="item.id"> <!-- <router-link :to="`/about?id=${item.id}`">{{ item.name }}</router-link> <router-link :to="`/info/${item.id}/${item.name}`">动态路由 {{ item.name }} </router-link> --> <button @clikc='jump(item)'>跳转页面,传参:{{item.id}}:{{item.name}}</button> </li> </ul> 当我们用js的方式进行跳转,同时又需要传递参数的时候,一定要使用命名路由,就是这个一般我们用命名路由的时候,name和path的值是一样的 点击按钮,执行jump方法,进行跳转传递参数的格式为this.$router.push({name:‘路由名称’,query:{ 参数们 }})当需要用到动态路由传参(params)的时候,把query换成params即可 methods:{ jump(item) { console.log(item) this.$router.push({name:'About',query:{id:item.id,name:item.name}}) } }看一下效果 非常成功