DEV Community

Cover image for Laravel Vue Router - Tutorial
Lesly Villalobos
Lesly Villalobos

Posted on

Laravel Vue Router - Tutorial

Vue Router is the official router for Vue.js to make building Single Page Applications by allowing you to link URLs to specific components.

Features include:

  • Nested route/view mapping
  • Modular, component-based router configuration
  • Route params, query, wildcards
  • View transition effects powered by Vue.js' transition system
  • Fine-grained navigation control
  • Links with automatic active CSS classes
  • HTML5 history mode or hash mode, with auto-fallback in IE9
  • Customizable Scroll Behavior

We are going to use vue-router to assign each menu element to the component we want to show. Let's get started!

Setup

Open your terminal and run these commands below:

  • Install the Laravel application (In this case the project's name is "catgallery" You can choose the name that you want):

  • Alt Text
  • Enter to the new directory with the command:

  • Alt Text
  • Install Vue:

  • Alt Text
  • Install npm:

  • Alt Text
  • Install Vue Router:

  • Alt Text

    App.js

    Go to the main JavaScript file resources/assets/js/app.js and update with the code below:

  • Import vue-router:

  • Alt Text
  • Next we tell Vue to use the vue-router plugin:

  • Alt Text
  • Set up the routes (We'll create the components later):

  • Alt Text
  • Create the router instance and pass the routes option:

  • Alt Text
  • To get rid of the hash, we can use the router's history mode, which leverages the history.pushState API to achieve URL navigation without a page reload:

  • Alt Text
  • Create and mount the root instance:

  • Alt Text
  • resources/js/app.js

  • Alt Text

    Components

    Create the vue.js components

  • resources/js/components/WelcomeComponent.vue

  • Alt Text
  • resources/js/components/KittenOne.vue

  • Alt Text
  • resources/js/components/KittenTwo.vue

  • Alt Text
  • resources/js/components/KittenThree.vue

  • Alt Text

    View

    Update welcome.blade.php

  • Add style css

  • Alt Text
  • Add id

  • Alt Text
  • Add router-link component for navigation

  • Alt Text
  • Add router-view tag. The router use this tag as a container for rendering the different components tied to the different routes.

  • Alt Text
  • Add js

  • Alt Text
  • resources/views/welcome.blade.php

  • Alt Text

    Styles

    Now add some style public/css/mystyle.css

    Final Steps

    npm run dev
    Alt Text

    Start the app with the command below:
    Alt Text

    It's done =)
    Alt Text

    I hope this example will be of help to you. ๐Ÿˆ
    Be creative and have fun along the way.

    Song while I was writing the post โ˜บ๏ธ https://open.spotify.com/track/4as4XEOR03oGm1STUKl6pa?si=DwWg9bE7Sdmur8OTQ-7ijA

    Thanks for reading!
    Have a nice day, coders๐Ÿ’œ

    Top comments (2)

    Collapse
     
    albertoapps profile image
    AlbertoApps

    Hola, buscando sobre Vue encontre tu blog, bueno disculpa por poner en spanish es que mi ingles es malo. Bueno me da gusto haber encontrado y espero contactarte pronto. Se me olvidaba soy Alberto espero que aun te acuerdes.

    Collapse
     
    camohub profile image
    camo

    The images are too small.