В Vue.js можно передавать данные между компонентами с помощью props
, а также использовать Vue Router
для навигации между различными представлениями (роутами). Чтобы передать props
от родительского компонента в дочерний компонент через Vue Router
, вам потребуется использовать динамические пути и параметры в маршрутах.
Предположим, у вас есть родительский компонент с именем "Parent" и дочерний компонент с именем "Child". Вы хотите передать некоторый prop
с именем "message" из родительского компонента в дочерний компонент через props
.
В файле маршрутизации (например, router.js
) вам нужно настроить динамический путь и параметр в определении маршрута для дочернего компонента:
import Vue from 'vue' import Router from 'vue-router' import Parent from '@/components/Parent' import Child from '@/components/Child' Vue.use(Router) export default new Router({ routes: [ { path: '/parent', name: 'Parent', component: Parent }, { path: '/child/:message', // Динамический путь с параметром message name: 'Child', component: Child, props: true // Включение передачи props через маршрут } ] })
Обратите внимание, что динамический путь задается с использованием синтаксиса :message
, где message
является именем параметра, который вы хотите передать.
В родительском компоненте "Parent" нужно перейти на маршрут дочернего компонента и передать значение prop
с помощью атрибута v-bind
или сокращенного синтаксиса ":":
<template> <div> <router-link :to="{ name: 'Child', params: { message: 'Hello from Parent' } }"> Go to Child </router-link> </div> </template>
В дочернем компоненте "Child" вы можете получить переданный prop
с помощью обычного синтаксиса свойств компонента:
<template> <div> <h1>{{ message }}</h1> </div> </template> <script> export default { props: ['message'], // Декларация принимаемого props // ... } </script>
Теперь, при навигации на страницу "Child" через ссылку в родительском компоненте, вы передадите значение "Hello from Parent" в prop
с именем "message" в дочерний компонент "Child". Это значение может быть динамическим и будет обновляться при каждом переходе на этот маршрут с новым значением параметра "message".