Commit 1306151233bf7cd7598d5e508329f05cd143972a

Authored by liuqimichale
1 parent e19eac3d

设置动态document.title

webintroduce/src/App.vue
1 <template> 1 <template>
2 <div id="app"> 2 <div id="app">
3 - <VHeader></VHeader> 3 + <VHeader v-if="headerShow"></VHeader>
4 <div class="main-wrap"> 4 <div class="main-wrap">
5 <router-view/> 5 <router-view/>
6 </div> 6 </div>
7 7
8 - <VFooter></VFooter> 8 + <VFooter v-if="footerShow"></VFooter>
9 </div> 9 </div>
10 </template> 10 </template>
11 11
@@ -17,6 +17,22 @@ export default { @@ -17,6 +17,22 @@ export default {
17 components:{ 17 components:{
18 VHeader, 18 VHeader,
19 VFooter 19 VFooter
  20 + },
  21 + data() {
  22 + return {
  23 + footerShow: true,
  24 + headerShow: true
  25 + }
  26 + },
  27 + watch: {
  28 + $route(to, from){
  29 + console.log(this.$route.path)
  30 + if(this.$route.path === '/login'){
  31 + this.headerShow = this.footerShow = false
  32 + }else {
  33 + this.headerShow = this.footerShow = true
  34 + }
  35 + }
20 } 36 }
21 } 37 }
22 </script> 38 </script>
webintroduce/src/components/VHeader.vue
@@ -5,7 +5,6 @@ @@ -5,7 +5,6 @@
5 :to="{path:link.linkPath}" 5 :to="{path:link.linkPath}"
6 tag="li" v-for="(link,index) in navLinks" 6 tag="li" v-for="(link,index) in navLinks"
7 :key="index" 7 :key="index"
8 - @click="navChange(index)"  
9 exact=""> 8 exact="">
10 {{link.name}} 9 {{link.name}}
11 </router-link> 10 </router-link>
@@ -20,15 +19,14 @@ export default { @@ -20,15 +19,14 @@ export default {
20 return { 19 return {
21 navLinks: [ 20 navLinks: [
22 {name:'首页',linkPath:'/home'}, 21 {name:'首页',linkPath:'/home'},
23 - {name:'解决方案',linkPath:'/solution'} 22 + {name:'解决方案',linkPath:'/solution'},
  23 + {name:'登录',linkPath:'/login'}
24 ] 24 ]
25 } 25 }
26 }, 26 },
27 methods:{ 27 methods:{
28 - navChange(index) { 28 + },
29 29
30 - }  
31 - }  
32 } 30 }
33 </script> 31 </script>
34 32
webintroduce/src/main.js
@@ -7,6 +7,12 @@ import router from &#39;./router&#39; @@ -7,6 +7,12 @@ import router from &#39;./router&#39;
7 require ('./assets/css/reset.css') 7 require ('./assets/css/reset.css')
8 Vue.config.productionTip = false 8 Vue.config.productionTip = false
9 9
  10 +router.beforeEach((to, from, next) =>{
  11 + console.log(to)
  12 + document.title = to.meta.title
  13 + next()
  14 +})
  15 +
10 /* eslint-disable no-new */ 16 /* eslint-disable no-new */
11 new Vue({ 17 new Vue({
12 el: '#app', 18 el: '#app',
webintroduce/src/router/index.js
1 import Vue from 'vue' 1 import Vue from 'vue'
2 import Router from 'vue-router' 2 import Router from 'vue-router'
3 -import VHome from '../views/VHome'  
4 -const VSolution = () => import('../views/VSolution')  
5 -const VEnterprise = () => import('../views/VEnterprise') 3 +import home from '../views/home'
  4 +const solution = () => import('../views/solution')
  5 +const enterprise = () => import('../views/enterprise')
  6 +const login = () => import('../views/login')
6 7
7 Vue.use(Router) 8 Vue.use(Router)
8 9
@@ -16,17 +17,34 @@ export default new Router({ @@ -16,17 +17,34 @@ export default new Router({
16 { 17 {
17 path: '/home', 18 path: '/home',
18 name: 'home', 19 name: 'home',
19 - component: VHome 20 + component: home,
  21 + meta: {
  22 + title: '首页'
  23 + }
20 }, 24 },
21 { 25 {
22 path: '/solution', 26 path: '/solution',
23 name: 'solution', 27 name: 'solution',
24 - component: VSolution 28 + component: solution,
  29 + meta: {
  30 + title: '解决方案'
  31 + }
25 }, 32 },
26 { 33 {
27 path: '/enterprise/:id', 34 path: '/enterprise/:id',
28 name: 'enterprise', 35 name: 'enterprise',
29 - component: VEnterprise 36 + component: enterprise,
  37 + meta: {
  38 + title: '企业'
  39 + }
  40 + },
  41 + {
  42 + path: '/login',
  43 + name: 'login',
  44 + component: login,
  45 + meta: {
  46 + title: '登录'
  47 + }
30 } 48 }
31 ] 49 ]
32 }) 50 })
webintroduce/src/views/VEnterprise.vue renamed to webintroduce/src/views/enterprise.vue
webintroduce/src/views/VHome.vue renamed to webintroduce/src/views/home.vue
webintroduce/src/views/login.vue 0 → 100644
  1 +<template>
  2 + <div>登录页面没有公共的头部底部</div>
  3 +</template>
  4 +
  5 +<script>
  6 +export default {
  7 + name: 'login'
  8 +}
  9 +</script>
  10 +
  11 +<style scoped lang="scss">
  12 +
  13 +</style>
webintroduce/src/views/VSolution.vue renamed to webintroduce/src/views/solution.vue