我有一個簡單的路由定義:
{
path: 'customers',
name: 'customers',
component: Customers,
props: true
}
首先,我在一般的 /customers 路線上。但是我可以在這條路線上使用查詢引數,并對更改做出反應以加載相應的資料:
this.$router.push({ name: 'customers', query: { customerId: '123' } });
@Watch('$route.query.customerId')
customerIdChanged() {
this.loadCustomer($route.query.customerId);
}
這按預期作業,但假設我將三個不同的 customerId 推送到該路由器,現在想回傳瀏覽器歷史記錄并逐一加載以前的客戶。我不能,因為查詢更改不被視為“真實”的 url 更改。所以當我推回時,我會被路由回最初的 /customers 路由。
如何使這些查詢更改計為真正的 url 更改,以便我可以使用后退按鈕?我可以維護自己的瀏覽器歷史堆疊,但我寧愿不這樣做,并且認為有更“官方”的解決方案?
謝謝!
- - 更新 - -
我的代碼實際上有錯誤。在我推送到路由之前,我用 /customer 替換了路由。然后推送客戶查詢路線。這就是回傳導航不起作用的原因。
uj5u.com熱心網友回復:
怎么樣動態匹配?你可以使用:
{
path: 'customers/:id',
name: 'customers',
component: Customers,
props: true
}
this.$router.push({ name: 'customers', params: { id: '123' } });
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/348569.html
