前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue修改浏览器的标题title

vue修改浏览器的标题title

作者头像
kirin
发布2020-09-10 18:39:22
1.2K0
发布2020-09-10 18:39:22
举报
文章被收录于专栏:Kirin博客

方法一:

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

代码语言:javascript
复制
  1. Vue.directive(‘title’, {
  2. inserted: function (el, binding) {
  3. document.title = el.dataset.title
  4. }
  5. })
代码语言:javascript
复制

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

代码语言:javascript
复制
v-title data-title="我的"

案例:

代码语言:javascript
复制
  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>
代码语言:javascript
复制

方法二:

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

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

代码语言:javascript
复制
  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. }
代码语言:javascript
复制

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

代码语言:javascript
复制
  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. })
代码语言:javascript
复制

方法三:

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

代码语言:javascript
复制
  1. import VueWechatTitle from ‘vue-wechat-title’
  2. Vue.use(VueWechatTitle)
代码语言:javascript
复制

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

代码语言:javascript
复制
  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. ]
代码语言:javascript
复制

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

代码语言:javascript
复制
  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>
代码语言:javascript
复制
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方法一:
  • 方法二:
  • 方法三:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档