diff --git a/lib/app/router.js b/lib/app/router.js index 87bc8b337e..ce04fcc213 100644 --- a/lib/app/router.js +++ b/lib/app/router.js @@ -26,6 +26,9 @@ uniqBy(_components, '_name').forEach((route) => { %> const <%= route._name %> = process.BROWSER_BUILD ? () => System.import('<%= route.component %>') : require('<%= route.component %>') <% }) %> +<% if (router.scrollBehavior) { %> +const scrollBehavior = <%= serialize(router.scrollBehavior).replace('scrollBehavior(', 'function(') %> +<% } else { %> const scrollBehavior = (to, from, savedPosition) => { // savedPosition is only available for popstate navigations. if (savedPosition) { @@ -48,6 +51,7 @@ const scrollBehavior = (to, from, savedPosition) => { return position } } +<% } %> export default new Router({ mode: 'history', diff --git a/lib/build.js b/lib/build.js index 743bb57b1d..e88acb5c61 100644 --- a/lib/build.js +++ b/lib/build.js @@ -167,7 +167,8 @@ function * generateRoutesAndFiles () { isDev: this.dev, router: { base: this.options.router.base, - linkActiveClass: this.options.router.linkActiveClass + linkActiveClass: this.options.router.linkActiveClass, + scrollBehavior: this.options.router.scrollBehavior }, env: this.options.env, head: this.options.head, diff --git a/lib/nuxt.js b/lib/nuxt.js index 37418c88fb..1ed5ab7a51 100644 --- a/lib/nuxt.js +++ b/lib/nuxt.js @@ -38,7 +38,8 @@ class Nuxt { router: { base: '/', linkActiveClass: 'nuxt-link-active', - extendRoutes: null + extendRoutes: null, + scrollBehavior: null }, build: {} }