vue修改浏览器的标题title

时间:2022-07-24
本文章向大家介绍vue修改浏览器的标题title,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

方法一:

第一步:在main.js里面添加一个全局指令

  1. Vue.directive(‘title’, {
  2. inserted: function (el, binding) {
  3. document.title = el.dataset.title
  4. }
  5. })

第二步:在要调用的组件里面,随便找一个div加入如下代码

v-title data-title="我的"

案例:

  1. <template>
  2. <header class=“header_home user_reg” v-title data-title=“”>
  3. <div class=“top_box hidden-xs”>
  4. <div class=“container”>
  5. <router-link to=“/” class=“logo”>
  6. <img src=“../../../assets/image/5b10f166c3332.png” alt=“” />
  7. </router-link>
  8. <ul class=“navs”>
  9. <li>
  10. <router-link to=“/regist”>注册</router-link>
  11. </li>
  12. <li>
  13. <router-link to=“/login”>登录</router-link>
  14. </li>
  15. <li>
  16. <router-link to=“/CooperUser”>合作平台</router-link>
  17. </li>
  18. </ul>
  19. </div>
  20. </div>
  21. </header>
  22. </template>

方法二:

实现思路很简单:就是利用路由的导购守卫beforeEach在每次页面跳转前更改对应的title

第一步:首先在route里面给每个路由加上meta属性

  1. {
  2. path: ‘/login’,
  3. name: ‘login’,
  4. component(resolve) {
  5. require([‘./views/login.vue’], resolve)
  6. },
  7. meta: {
  8. title: ‘登录页’,
  9. keepAlive: true, // 需要被缓存
  10. }
  11. },
  12. {
  13. path: ‘/regist’,
  14. name: ‘regist’,
  15. component(resolve) {
  16. require([‘./views/regist.vue’], resolve)
  17. },
  18. meta: {
  19. title: ‘注册页’,
  20. keepAlive: true, // 需要被缓存
  21. }
  22. },
  23. {
  24. path: ‘/newList’,
  25. name: ‘newlist’,
  26. component(resolve) {
  27. require([‘./views/newsList.vue’], resolve)
  28. },
  29. meta: {
  30. title: ‘新闻列表’,
  31. keepAlive: true, // 需要被缓存
  32. }
  33. }

第二步:在main.js里面加上导航守卫

  1. router.beforeEach((to, from, next) => {
  2. window.document.title = to.meta.title == undefined?‘默认标题’:to.meta.title
  3. if (to.meta.requireAuth) {
  4. let token = Cookies.get(‘access_token’);
  5. let anonymous = Cookies.get(‘user_name’);
  6. if (token) {
  7. next({
  8. path: ‘/login’,
  9. query: {
  10. redirect: to.fullPath
  11. }
  12. })
  13. }
  14. }
  15. next();
  16. })

方法三:

1.先安装插件,命令行执行cnpm install vue-wechat-title --save即可安装。 2.引用插件,在main.js中,首先import然后再use即可,具体代码如下:

  1. import VueWechatTitle from ‘vue-wechat-title’
  2. Vue.use(VueWechatTitle)

3.在路由的配置文件router.js里面配置我们想要的页面标题,代码示例如下:

  1. routes: [{
  2. path: ‘/’,
  3. name: ‘index’,
  4. component: Index,
  5. meta: {
  6. title: “漫岛-一个有趣的网站”
  7. }
  8. },
  9. {
  10. path: ‘/recruit’,
  11. name: ‘recruit’,
  12. component: Recruit,
  13. meta: {
  14. title: “漫岛-团队伙伴招募”
  15. }
  16. }
  17. ]

4.最后一步,在app.vue里面添加指令v-wechat-title即可,示例是从官方npm页面copy的,请注意注释部分不要破坏使用规则。具体如下:

  1. <!– 任意元素中加 v-wechat-title 指令 建议将标题放在 route 对应meta对象的定义中 –>
  2. <div v-wechat-title=“$route.meta.title”></div>
  3. <!–或者–>
  4. <router-view v-wechat-title=“$route.meta.title”></router-view>