# Vue router back button
[](https://www.npmjs.com/package/vue-router-back-button) [](https://github.com/MaximVanhove/vue-router-back-button) [](https://github.com/MaximVanhove/vue-router-back-button)
A simple VueJS package to extend vue-router with a back button.
## Why? I could just add "history.back()"
Sure thing, but the in browser history does not account for programatic navigation. This is where vue-router-back-button comes in. This package does not just sends you to the previous route. Instead it tracks your navigation and sends you back to where you came from.
### Regular
Overview page > show page > edit page
After save, a programatic navigation to show page > go back will take you to **edit page**
### Vue-router-back-button
Overview page > show page > edit page
After save, a programatic navigation to show page > go back will take you to **overview page** as intented
## Dependencies
- vue >2.3.3
- vue-router >2.6.0
## Setup
```
npm install vue-router-back-button --save
```
Tell Vue to use routerHistory and add writeHistory as Global After Hook.
```
import Vue from 'vue'
import Router from 'vue-router'
import VueRouterBackButton from 'vue-router-back-button'
Vue.use(Router)
const router = new Router({
routes: []
})
Vue.use(VueRouterBackButton, { router })
```
## Usage
### Going back
You can add this anywhere in your app as $routerHistory is installed globally. If you can't go back, $routerHistory.previous().path will return null.
```
GO BACK
```
### Going forward
If you went back, you might want to undo that action right? Well now you can go forward as well!
```
GO FORWARD
```
### Ignoring routes with the same name
If you want to ignore routes with the same name, just set the `ignoreRoutesWithSameName` option to `true`
```
Vue.use(VueRouterBackButton, {
router,
ignoreRoutesWithSameName: true,
})
```
## Documentation
| Function | Description |
| -------- |-------------|
| previous () | Returns the previous visited path in an object |
| hasPrevious() | Returns true if the user can go back |
| next () | Returns the next visited path in an object, this happens when a user went back |
| hasForward () | Returns true if the user can go forward |
| | |
Feel free to send PR's or request new features (I'll might need to rename this to vue-router-history if you do though)
## Author
Maxim Vanhove
Web developer at [Starring Jane](https://starringjane.com)
[](https://twitter.com/MrMaximVanhove)