entry.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import Vue from 'vue';
  2. import entry from './app';
  3. import VueRouter from 'vue-router';
  4. import Element from 'main/index.js';
  5. import 'packages/theme-chalk/src/index.scss';
  6. import routes from './route.config';
  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. import title from './i18n/title.json';
  13. Vue.use(Element);
  14. Vue.use(VueRouter);
  15. Vue.component('demo-block', demoBlock);
  16. Vue.component('main-footer', MainFooter);
  17. Vue.component('main-header', MainHeader);
  18. Vue.component('side-nav', SideNav);
  19. Vue.component('footer-nav', FooterNav);
  20. const router = new VueRouter({
  21. mode: 'hash',
  22. base: __dirname,
  23. routes
  24. });
  25. router.afterEach(route => {
  26. const data = title[route.meta.lang];
  27. for (let val in data) {
  28. if (new RegExp('^' + val, 'g').test(route.name)) {
  29. document.title = data[val];
  30. return;
  31. }
  32. }
  33. document.title = 'Element';
  34. });
  35. new Vue({ // eslint-disable-line
  36. render: h => h(entry),
  37. router
  38. }).$mount('#app');