您好,登錄后才能下訂單哦!
Vue 使用this.$router.push()方法如何實現頁面跳轉?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
很多情況下,我們在執行點擊按鈕跳轉頁面之前還會執行一系列方法,這時可以使用 this.$router.push(location) 來修改 url,完成跳轉。
push 后面可以是對象,也可以是字符串:
// 字符串 this.$router.push('/home/first') // 對象 this.$router.push({ path: '/home/first' }) // 命名的路由 this.$router.push({ name: 'home', params: { userId: wise }})
跳轉頁面并傳遞參數的方法:
1.Params
由于動態路由也是傳遞params的,所以在 this.$router.push() 方法中path不能和params一起使用,否則params將無效。需要用name來指定頁面。
及通過路由配置的name屬性訪問
在路由配置文件中定義參數:
/* router.js 文件*/ import Vue from "vue"; import Router from "vue-router"; import MediaSecond from "@/views/EnterprisePage/MediaMatrix/second"; //資訊列表 Vue.use(Router); export default new Router({ routes: [ /* 進行路由配置 */ { name: "MediaSecond", path: "/MediaSecond", component: MediaSecond }, ] }) /* 后面還需要接一空行,否則無法通過 ESlint 語法驗證 */
通過name獲取頁面,傳遞params:
this.$router.push({ name: 'MediaSecond',params:{artistName:artistName,imgUrl:imgUrl,type:2} })
在目標頁面通過this.$route.params獲取參數:
if (this.$route.params.type == 2) { this.type = apis.getAtistDetails; } else { this.type = apis.getMessageList; }
2.Query
頁面通過path/name和query傳遞參數,該實例中row為某行表格數據
this.$router.push({ name: 'DetailManagement', query: { auditID: row.id, type: '2' } });
this.$router.push({ path: '/DetailManagement', query: { auditID: row.id, type: '2' } });
在目標頁面通過this.$route.query獲取參數:
this.$route.query.type
補充知識:vue this.$router.push('./map');無法跳轉的問題
<template> <div > <el-button type="primary" @click="onLogin">登錄</el-button> </div> </template> <script> export default { name: 'login', data () return { } }, methods: { onLogin:function () { this.$router.push('./map'); } }, } </script> <style scoped> </style>
router中是這樣引入的
import map from '@components/map'
點擊事件無法跳轉
2.解決方法:
改變引入方式
import map=r=>require.ensure([],()=>(require('../components/map')),'map')
看完上述內容,你們掌握Vue 使用this.$router.push()方法如何實現頁面跳轉的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。