vue3+vite+js动态设置meta标签 SEO
时间: 2023-09-03 18:08:10 浏览: 305
vue3+vite+ts环境搭建步骤
5星 · 资源好评率100%
非常高兴能和您进行对话!对于您的问题,Vue3和Vite都提供了一些很好的方式来动态设置meta标签来实现SEO。其中一种方法是利用Vue的全局导航守卫beforeEach函数,在路由导航前执行一些操作,例如动态设置页面meta标签。您可以使用以下代码作为参考:
```
router.beforeEach((to, from, next) => {
document.title = to.meta.title
const description = to.meta.description
const keywords = to.meta.keywords
const author = to.meta.author
const head = document.getElementsByTagName('head')[0]
// 删除原有meta标签
const metaList = head.getElementsByTagName('meta')
for (let i = 0; i < metaList.length; i++) {
if (metaList[i].getAttribute('name') === 'description' || metaList[i].getAttribute('name') === 'keywords' || metaList[i].getAttribute('name') === 'author') {
head.removeChild(metaList[i])
i--
}
}
// 插入新meta标签
const descriptionMeta = document.createElement('meta')
descriptionMeta.name = 'description'
descriptionMeta.content = description
head.appendChild(descriptionMeta)
const keywordsMeta = document.createElement('meta')
keywordsMeta.name = 'keywords'
keywordsMeta.content = keywords
head.appendChild(keywordsMeta)
const authorMeta = document.createElement('meta')
authorMeta.name = 'author'
authorMeta.content = author
head.appendChild(authorMeta)
next()
})
```
在这个代码片段中,我们首先利用Vue的全局导航守卫beforeEach函数,获取到需要设置的meta标签的内容(如title、description、keywords和author)。然后,我们获取到head元素,并删除所有已有的description、keywords和author的meta标签。最后,我们创建新的meta标签,并将它们插入到head元素中。
希望这能够解决您的问题!如果您还有其他问题,可以继续向我提问。
阅读全文