Como redirecionar no Vue

Eu já criei dois posts sobre o vue-router, e você pode ver respectivamente o artigo 1 e 2 clicando aqui e aqui.

Já sabendo como trabalhar com o vue-router, para redirecionar é simples, é só importar o useRouter do vue-router, claro na Composition API, na Options não precisa importar nada.

<template>
  <h2>Product</h2>
</template>

<script setup>
import { useRoute, useRouter } from 'vue-router';

const route = useRoute();
const router = useRouter(); // esse é para redirecionar

router.push('/about');
</script>

Veja que importei o useRoute e useRouter, o que eu vou usar para redirecionar é o useRouter, depois é só chamar o método push, onde posso passar tanto a URI como o nome da rota, no exemplo acima chamei a URI '/about' e para redirecionar para o nome é só passar um objeto para o push com a propriedade name.

<template>
  <h2>Product</h2>
</template>

<script setup>
import { useRoute, useRouter } from 'vue-router';

const route = useRoute();
const router = useRouter();

router.push({name:'create'});
</script>

Não esquecendo de criar a rota com o name 'create'.

import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import Create from '../views/Create.vue';

const router = createRouter({
    history: createWebHistory(import.meta.env.BASE_URL),
    routes: [
        {
            path: '/',
            name: 'home',
            component: Home
        },
        {
            path: '/create',
            name: 'create', // name aqui
            component: Create
        }
    ]
});

E olha só que legal, eu posso também passar parâmetros no redirecionamento.

<template>
  <h2>Product</h2>
</template>

<script setup>
import { useRoute, useRouter } from 'vue-router';

const route = useRoute();
const router = useRouter();

router.push({name:'create', params:{id:12}});
</script>

Agora no componente Create posso pegar o(s) parâmetros(s) assim:

const route = useRoute();
console.log(route.params.id);

Se eu quiser usar um objeto no push mas chamando a URI(path), eu posso passar a propriedade path

<template>
  <h2>Product</h2>
</template>

<script setup>
import { useRoute, useRouter } from 'vue-router';

const route = useRoute();
const router = useRouter();

router.push({path:'/create', params:{id:12}}); // path chama a uri
</script>

Para ficar mais fácil de lembrar essa parte de redirecionar com um objeto, pensa no seguinte, nas rotas eu posso passar o path e o name, então para redirecionar posso usar tanto o path como o name, olha só.

import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import Create from '../views/Create.vue';

const router = createRouter({
    history: createWebHistory(import.meta.env.BASE_URL),
    routes: [
        {
            path: '/',
            name: 'home',
            component: Home
        },
        {
            path: '/create', // path aqui, posso redirecionar usando o path
            name: 'create', // name aqui, posso redirecionar usando o name
            component: Create
        }
    ]
});

E para redirecionar usando a Options API é só usar o this.$router.push().

Pronto, é assim que se redireciona no Vue 3.


Se quiser conhecer meu trabalho mais a fundo, visite meu canal no YouTube e veja meus cursos completos clicando nos links abaixo.

🔥Canal no YouTube: Ir para o canal no YouTube
🔥Veja meus cursos disponíveis: Ir para a lista de cursos

About the Author

Alexandre Eduardo Cardoso
Alexandre Eduardo Cardoso

Meu nome é Alexandre Cardoso e tenho 41 anos. Sou programador desde 2008, quando comecei a estudar e me especializar em PHP e Javascript. Já em 2011, dei minhas primeiras aulas de programação, e não consegui mais parar desde então. Ensinar é minha missão neste mundo!

0 Comments

Leave a comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *