记录vue设置动态网页seo

入口文件main.js配置
 

data: {

    'keywords': '',

    'description': '',

    'title': ''

  },

  created() {

    let head = document.getElementsByTagName('head'); //创建head标签

    let meta1 = document.createElement('meta'); // 创建meta标签

    let meta2 = document.createElement('meta');

 

    meta1.name = 'keywords'; // 设置name

    meta2.name = 'description';

 

    function getSEO(index, h, m1, m2) {

 

      axios.get('/getSeo', { 'params': { 'id': index } }).then((response) => {

        var data = response.data.data;

 

        let key = data.keyword;

        let desc = data.description;

        let title = data.pageTitle;

        document.title = title || '默认title';

        m1.content = key || '默认关键字';

        m2.content = desc || '默认描述';

        h[0].appendChild(m1);

        h[0].appendChild(m2);

 

      }).catch((err) => {

        console.log(err);

      });

    }

 

    let cIndex = sessionStorage.currentRouteIndex; // 先保存一把

    if (cIndex) {

      cIndex = parseInt(cIndex, 10);

      getSEO(cIndex, head, meta1, meta2);

    } else {

      getSEO(1, head, meta1, meta2);

      sessionStorage.currentRouteIndex = 1; // 首次 进入

    }

    // 全局配置

    router.beforeEach((to, from, next) => {

      let i = to.meta.index;

      let j = from.meta.index;

      if (i === j) {

        return;

      } // 减少请求次数

 

      if (meta1.name === 'keywords' || meta2.name === 'description') { // 如果之前有获取过关键字,先清空内容

        meta1.content = '';

        meta2.content = '';

      }

      sessionStorage.setItem('currentRouteIndex', i); // 保存到浏览器中去

      getSEO(i, head, meta1, meta2);

      next();

    });

 

 

路由配置

 

{

            path: '/chanpin',

            name: 'chanpin',

            component: chanpin,

            'meta': {

                'index': 2, // 自定义标识

                'keepAlive': true

            }

},

主要添加meta,自定义index标识,去后台查询

'meta': {

                'index': 2, // 自定义标识

                'keepAlive': true

 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值