1.使用Vue Router的钩子函数
在Vue Router的钩子函数beforeEach()中,可以通过修改document的title属性来修改网页标题。
const router = new VueRouter({
routes: [...]
})
router.beforeEach((to, from, next) => {
document.title = to.meta.title || '默认标题'
next()
})
在Vue Router中的路由配置中,可以为每个路由定义meta属性,其中包含了各自的网页标题。
2.在组件的生命周期函数中通过document.title设置网页标题
对于没有使用Vue Router的应用,可以在组件的生命周期函数中使用document.title来设置网页标题。
export default {
name: 'YourComponentName',
data() {
return {
title: 'Your Default Title'
}
},
mounted() {
document.title = this.title
}
}
3.使用插件vue-meta
Vue-Meta是一个为Vue.js提供完整的SEO解决方案的插件,它允许在组件中使用特定的meta信息,从而对搜索引擎优化有利。
// main.js
import Vue from 'vue'
import VueMeta from 'vue-meta'
Vue.use(VueMeta, {
refreshOnceOnNavigation: true
})
// 组件使用
<template>
<div>
<h1 v-bind:title="$metaInfo.title">{{ $metaInfo.title }}</h1>
</div>
</template>
<script>
export default {
metaInfo: {
title: '当前页面标题'
}
}
</script>
使用Vue-Meta插件,可以在每个组件的metaInfo选项中设置当前页面的网页标题。插件会自动更新网页标题。
4.修改 vue.config.js 配置文件
在vue.config.js
文件中添加configureWebpack
配置选项,然后使用html-webpack-plugin
插件设置应用程序标题。
module.exports = {
configureWebpack: {
plugins: [
new HtmlWebpackPlugin({
title: '六思逸'
})
]
}
}
5.实现不同页面不同标题
方法一:
在Vue Router中的路由配置文件中为每个路由定义不同的网页标题
在Vue Router中的路由配置文件中,可以为每个路由定义不同的网页标题
const router = new VueRouter({
routes: [
{ path: '/', component: Home, meta: { title: '首页' } },
{ path: '/about', component: About, meta: { title: '关于我们' } },
{ path: '/contact', component: Contact, meta: { title: '联系我们' } },
]
})
方法二:
在组件的metaInfo选项中单独定义网页标题
在组件的metaInfo选项中单独定义网页标题,可以实现在不同的组件中单独设置网页标题的效果
<template>
<div>
<h1>{{ $metaInfo.title }}</h1>
</div>
</template>
<script>
export default {
name: 'YourComponentName',
metaInfo: {
title: '六思逸-当前页面标题'
}
}
</script>