entry.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import Vue from 'vue';
  2. import entry from './app';
  3. import VueRouter from 'vue-router';
  4. import configRouter from './route.config';
  5. import Element from 'main/index.js';
  6. import 'packages/theme-default/src/index.css';
  7. import demoBlock from './components/demo-block.vue';
  8. import MainFooter from './components/footer.vue';
  9. import MainHeader from './components/header.vue';
  10. import SideNav from './components/side-nav';
  11. import FooterNav from './components/footer-nav';
  12. Vue.use(Element);
  13. Vue.use(VueRouter);
  14. Vue.component('demo-block', demoBlock);
  15. Vue.component('main-footer', MainFooter);
  16. Vue.component('main-header', MainHeader);
  17. Vue.component('side-nav', SideNav);
  18. Vue.component('footer-nav', FooterNav);
  19. const scrollBehavior = (to, from, savedPosition) => {
  20. if (savedPosition) {
  21. // savedPosition is only available for popstate navigations.
  22. return savedPosition;
  23. } else {
  24. // new navigation.
  25. // scroll to anchor
  26. if (to.hash) {
  27. return { anchor: true };
  28. }
  29. // explicitly control scroll position
  30. // check if any matched route config has meta that requires scrolling to top
  31. if (to.matched.some(m => m.meta.scrollToTop)) {
  32. return { x: 0, y: 0 };
  33. }
  34. }
  35. };
  36. const router = new VueRouter({
  37. mode: 'history',
  38. base: __dirname,
  39. scrollBehavior,
  40. routes: configRouter
  41. });
  42. new Vue({ // eslint-disable-line
  43. render: h => h(entry),
  44. router
  45. }).$mount('#app');