? 近期的工作中硬着头皮写了一堆前端的东西,后台系统的页面马马虎虎也就那么回事。
常见的页面路由场景要么是在列表点击关键字跳转详情页,要么就是选中一条记录,通过按钮跳转到新页面展示详情信息。
this.$router.push()
编程式路由实现。使用router.push()方法,这个方法会向history栈添加一个新纪录,所以,当用户点击浏览器后退按钮时,会回到之前的URL。
push方法除了path变量指定地址外,还可以使用 query 传递参数。
<el-button type="primary" size="mini" @click="handleConfig">配置</el-button>
handleConfig() {
? ? ? let currentRow = this.curRow;
? ? ? this.$router.push({path: "/project/detail", query: currentRow});
? ? },
跳转页面后可以通过 this.$route.query 拿到路由跳转时的传参,进行下一步处理。
if (this.$route.query.id !== undefined) {
? ? getDetail(this.$route.query.id).then(response => {
? ? ? this.form = response.data;
? ? ?});
}
?<router-link> 标签
这种属于声明式路由实现,当点击 <router-link> 时,这个方法会在内部调用,即点击 <router-link :to="..."> 等同于调用 router.push(...)方法。
<el-table-column label="项目编号" align="left" prop="projectCode">
?? ?<template slot-scope="scope">
?? ? ?<router-link :to="{path:'/project/detail', query:{id: scope.row.id}}" style="color: #20b6f9">{{scope.row.projectCode}}</router-link>
?? ?</template>
</el-table-column>
?
|