Vue项目中如何设置动态的TDK

简介: Vue项目中如何设置动态的TDK
TDK是什么

TDK就是网站的标题(title)、描述(description)和关键词(keyword)


TDK在哪里

上面大佬对TDK的概念解释的很全面,但是在网页中的TDK在哪里呢,作为开发人员打开F12我们就可以看到

可以看到T就是我们页签中的标题,而description和keyword也是可以存在的但是并没有给用户直接展示的形式


设置网站TDK

在html中我们可以如下设置我们的网站TDK

设置后效果如下


Vue中动态设置TDK
1. 修改index.html

将TDK的内容清空,然后看到官方提到了位置的问题,meta标签必须写在头部head标签之内,而keywords的meta标签要写在title的meta标签之后,但又在description的meta标签之前,像下面这样的顺序写:

2. 来到路由配置中添加meta属性

 meta: {
      title: '首页',
      content: {
        keywords: '关键字1,关键字2',
        description: '描述内容描述内容描述内容描述内容描述内容描述内容描述内容'
      }
    }
3. 找到Vue项目中的导航守卫

根据自己项目中导航守卫设置的位置,此处为了方便我就直接设置在了route.js中了

router.beforeEach((to, from, next) => {
//    路由发生变化改变description和keyword
  if (to.meta.content) {
    const head = document.getElementsByTagName('head')
    const meta = document.createElement('meta')
    document.querySelector('meta[name="keywords"]').setAttribute('content', to.meta.content.keywords)
    document.querySelector('meta[name="description"]').setAttribute('content', to.meta.content.description)
    meta.content = to.meta.content
    head[0].appendChild(meta)
  }
  // 路由发生变化修改页面title
  if (to.meta.title) {
    document.title = to.meta.title
  }
  next()
})


4. 重启项目即可
npm run dev



相关文章
|
1天前
|
JavaScript
【vue】 父组件调用子组件方法
【vue】 父组件调用子组件方法
6 0
|
1天前
|
JavaScript
【vue】 如何给封装好的组件加click事件
【vue】 如何给封装好的组件加click事件
6 1
|
2天前
|
存储 JavaScript 前端开发
【Vue】绝了!这生命周期流程真...
【Vue】绝了!这生命周期流程真...
|
2天前
|
JavaScript 索引
【vue】框架搭建
【vue】框架搭建
6 1
|
2天前
|
JavaScript 前端开发 容器
< 每日小技巧: 基于Vue状态的过渡动画 - Transition 和 TransitionGroup>
Vue 的 `Transition` 和 `TransitionGroup` 是用于状态变化过渡和动画的组件。`Transition` 适用于单一元素或组件的进入和离开动画,而 `TransitionGroup` 用于 v-for 列表元素的增删改动画,支持 CSS 过渡和 JS 钩子。
< 每日小技巧: 基于Vue状态的过渡动画 - Transition 和 TransitionGroup>
|
2天前
|
JavaScript
【vue】setInterval的嵌套实例
【vue】setInterval的嵌套实例
6 1
|
2天前
|
JavaScript 前端开发 安全
【Vue】内置指令真的很常用!
【Vue】内置指令真的很常用!
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
982 0
|
1天前
|
JavaScript 前端开发
【vue】iview如何把input输入框和点击输入框之后的边框去掉
【vue】iview如何把input输入框和点击输入框之后的边框去掉
6 0
|
1天前
|
JavaScript
【vue实战】父子组件互相传值
【vue实战】父子组件互相传值
5 1