在元件中使用$route
會使之與其對應路由形成高度耦合,從而使元件只能在某些特定的 url 上使用,限制了其靈活性。
使用props
將元件和路由解耦:
取代與$route
的耦合
const user = }'}
const router = new vuerouter(
]})
通過props
解耦
const user = }'}
const router = new vuerouter(,
// 對於包含命名檢視的路由,你必須分別為每個命名檢視新增 `props` 選項:
,props:
}]})
這樣你便可以在任何地方使用該元件,使得該元件更易於重用和測試。
如果props
被設定為true
,route.params
將會被設定為元件屬性。
如果props
是乙個物件,它會被按原樣設定為元件屬性。當props
是靜態的時候有用。
const router = new vuerouter( }
]})
你可以建立乙個函式返回props
。這樣你便可以將引數轉換成另一種型別,將靜態值與基於路由的值結合等等。
const router = new vuerouter() }
]})
url/search?q=vue
會將
作為屬性傳遞給searchuser
元件。
請盡可能保持props
函式為無狀態的,因為它只會在路由發生變化時起作用。如果你需要狀態來定義props
,請使用包裝元件,這樣 vue 才可以對狀態變化做出反應。
vue筆記之路由傳參
1.使用query方式 login?id 10 name zs tag span 登入router link register 註冊router link router view div 元件模版物件 var login var register 建立乙個路由物件,當匯入vue router包之後,...
vue傳參,元件之間傳參 路由傳參 vuex
詳見 兩種情況 params 和 query 都可以在目標元件的生命週期裡,通過 this.route 進行獲取 例 首頁中精選主題的路由傳參 精選主題 1 簡單舉例 a 一般會新建 store 資料夾,在 index.js 初始化 vuex b 在 main.js 中,引入 c 例如,在我的頁面修...
Vue 路由 router 路由元件傳參 (重點)
為什麼要用路由元件傳參呢?在元件中使用 route會使之與其對應路由形成高度耦合,從而使元件只能在某些特定的url上使用,限制了靈活性。通過props來解耦。布林模式 如果 props 被設定為 true,route.params 將會被設定為元件屬性。核心 const position let r...