Есть ли способ передавать переменные в маршрутизаторе Vuejs?

#javascript #vue.js

#javascript #vue.js

Вопрос:

У меня есть повторно используемый компонент, которому требуется только другой вызов API в зависимости от компонента при каждом его вызове.

Я хочу иметь возможность делать что-то вроде этого

 const routes = [
  {
    path: '/books',
    component: () => import('./Pages/Book-highlights/Nav/index.js'),
    props: {api: '/api/allBooks'}
  }
]
const router = new VueRouter({
  routes
})
  

Насколько я понимаю, props это просто для того, чтобы разрешить использование URL-слагаемых (или как они там называются) ?api=something . Я хочу иметь возможность делать что-то вроде этого

 <Nav api='/api/allBooks'></Nav>
  

Но, конечно, купите передачу этого api в VueRouter

Все, что я исследовал, говорит мне, что это невозможно сделать, но я чувствую, что где-то это видел!

Комментарии:

1. router.vuejs.org/guide/essentials/…

2. @ibrahimmahrir Я видел это, но я не думаю, что это то, что мне нужно. Это просто использует параметры маршрутизатора, мне нужно передать свои собственные параметры, не касаясь маршрута (не полагаясь на строки запроса)

3. Ну, трудно понять, что вы здесь ищете. Не могли бы вы уточнить, пожалуйста?

4. @ibrahimmahrir в приведенном вами примере id происходит с URL, /:id который мне нужно предоставить, id не отвечая на URL

5. Почему тогда вам нужно передавать их с маршрутизатором? просто поместите их в компонент

Ответ №1:

Вы можете использовать это по-разному. 1 Передача параметра через маршрутизатор и работа над необходимыми конфигурациями на основе параметра. https://codeburst.io/passing-props-to-vue-js-route-components-with-vue-router-e9ad99d8a133 2 если вы вызываете его как компонент в приложении, то вы можете передать параметры как то, что вы упомянули выше, и аналогичным образом принять параметр внутри компонента и работать над необходимыми изменениями на основе входного значения https://blog.logrocket.com/how-to-use-props-to-pass-data-to-child-components / Дайте мне знать, если у вас возникнут какие-либо вопросы