aloky
@aloky
js

Не могу понять router vue, не могу разобраться с children?

Есть такой путь, я сделал в компоненте transfers.vue
created() {this.$router.push({ path: '/transfers/new' })},
это помогает только при 1ом нажатии, а если 2ой раз нажать то он уже отрывает /transfers просто, а мне надо чтоб всегда /transfers/new было

{
	path: '/transfers',
	name: 'transfers',
	component: transfers,
	children: [
		{
			path: 'new',
			name: 'new',
			component: transferFormWidget
		},
	]
},
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
muzikant777
@muzikant777
PHP/Vue разработчик
Вы не написали, куда нажимаете, но предполагаю, что хук created отрабатывает при создании компонента.
vue-router старается переиспользовать компоненты, поэтому второй раз created уже не запускается.

Писать такое считаю не совсем правильным, лучше так:
{
  path: '/transfers',
  name: 'transfers',
  component: transfers,
  children: [
    {
      path: 'new',
      name: 'new',
      component: transferFormWidget
    },
    {
      path: '',
      redirect: 'new'
    }
  ]
},

И убрать this.$router.push из хука. В этом случае, если передан пустой child для tranfers, vue-router средиректит на transfers/new
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы