Skip to content

Latest commit

 

History

History
46 lines (32 loc) · 1.75 KB

routing.md

File metadata and controls

46 lines (32 loc) · 1.75 KB

Routing

Official Router

For most Single Page Applications, it's recommended to use the officially-supported vue-router library. For more details, see vue-router's documentation.

Simple Routing from Scratch

If you only need very simple routing and do not wish to involve a full-featured router library, you can do so by dynamically rendering a page-level component like this:

const { createApp, h } = Vue

const NotFoundComponent = { template: '<p>Page not found</p>' }
const HomeComponent = { template: '<p>Home page</p>' }
const AboutComponent = { template: '<p>About page</p>' }

const routes = {
  '/': HomeComponent,
  '/about': AboutComponent
}

const SimpleRouter = {
  data: () => ({
    currentRoute: window.location.pathname
  }),

  computed: {
    CurrentComponent() {
      return routes[this.currentRoute] || NotFoundComponent
    }
  },

  render() {
    return h(this.CurrentComponent)
  }
}

createApp(SimpleRouter).mount('#app')

Combined with the History API, you can build a very basic but fully-functional client-side router. To see that in practice, check out this example app.

Integrating 3rd-Party Routers

If there's a 3rd-party router you prefer to use, such as Page.js or Director, integration is similarly straightforward. Here's a complete example using Page.js.