1.在router里面index.js文件夹中
const routes = [
{
path: '/',
name: 'Home',
component: () => import('@/views/home/index.vue'),
meta:{
title:'百邦Apple授权服务商-中国售后服务领域上市公司',
content:{
keywords:'首页keywords',
description:'首页description',
},
}
},
{
path: '/list',
name: 'List',
component: () => import('@/views/home/list.vue'),
meta:{
title:'列表',
content:{
keywords:'列表页keywords',
description:'列表页description',
},
}
}
]
2.然后在main.js里面设置,路由发生变化修改页面meta
setAttribute 后面就是设置它的值前提是要和router里面的content是相对应的,要不然是获取不到的
document.querySelector(‘meta[name=“description”]’).setAttribute(‘content’, to.meta.content.description)
router.beforeEach((to, from, next) => {
/* 路由发生变化修改页面meta */
console.log(to.meta.content)
if(to.meta.content){
let head = document.getElementsByTagName('head');
let 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()
});
注意:
1.html文件需要添加
<meta data-n-head="1" data-hid="description" name="description" content="">
<meta data-n-head="1" data-hid="keywords" name="keywords" content="">
2.只是单纯动态改变meta的属性值,对seo并没有进行优化