动态添加meta和title

vue动态设置title和meta标签

1.在router.js中添加meta  在main.js中监听路由的变化改变页面head中的标签  代码如下:

router.js 
path: "/transfer/detail/:id",
          name: "transfer/detail",
          meta: {
            title: "转店详情",
            name: "xxx转店",
            content: "xxx转店,租金xx元/月"
          },
          component: () =>
            import(/* webpackChunkName: "TransferShopDetails" */ "@/views/TransferShopDetails.vue")
}
main.js
router.beforeEach((_to, _from, next) => {
  if (_to.meta.content || _to.meta.name) {
    let head = document.getElementsByTagName("head");
    let meta = document.createElement("meta");
    meta.content = _to.meta.content;
    meta.content = _to.meta.name;
    head[0].appendChild(meta);
  }
  /* 路由发生变化修改页面title */
  if (_to.meta.title) {
    document.title = _to.meta.title;
  }
  next();
});
2.window.open中打开新页面,找了半天自恋也没有发现简单高效的方法, 于是直接在跳转的页面组件内修改meta和title,多个页面需要些多次方法,代码如下:
document.title = this.detailsData.title;
      let meta = document.getElementsByTagName("meta");
      let meta1;
      let meta2;
      for (let i in meta) {
        if (meta[i].name === "Keywords") {
          meta1 = meta[i];
        }
        if (meta[i].name === "Description") {
          meta2 = meta[i];
        }
      }
      meta1.content =
        this.detailsData.bigDistrictName +
        this.detailsData.smallDistrictName +
        "商铺出租,租金" +
        this.detailsData.rent +
        this.detailsData.rentShowUnit +
        ",面积" +
        this.detailsData.area +
        "m²,无转让费";
      meta2.content = this.detailsData.suitIndustry;
如果有更高效简洁的动态修改方法的话  敬请留言  共同学习
 

转载于:https://www.cnblogs.com/start-from-today/p/11474799.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nuxt.js 是一个基于 Vue.js 的服务端渲染框架,用于构建 SSR(服务器端渲染)应用程序。在 Nuxt.js 中,可以通过配置 nuxt.config.js 文件来实现动态添加 meta 标签的功能。 要动态添加 meta 标签,可以在 nuxt.config.js 文件的 head 属性中使用一个数组来配置。数组中的每个对象代表一个 meta 标签,对象中可以设置该标签的各种属性,如 name (用于指定 meta 标签的名称)、content (用于指定 meta 标签的内容)等。 以下是一个动态添加 meta 标签的示例: ``` export default { head: { title: 'My App', meta: [ { charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, { hid: 'description', name: 'description', content: 'My App description' } ] } } ``` 在上面的示例中,head 属性中的 meta 数组中添加了三个 meta 标签。第一个是设置字符集为 utf-8 的 meta 标签,第二个是设置移动端适配的 meta 标签,第三个是设置页面描述的 meta 标签。其中 hid 属性是一个特殊的属性,用于帮助 Nuxt.js 唯一地标识每个 meta 标签。 除了在 nuxt.config.js 文件中静态配置 meta 标签外,还可以通过调用 Vue 组件的方式动态添加和修改 meta 标签。在 Vue 组件的生命周期函数中,可以通过 this.$nuxt.$options.head.meta.push 方法来添加 meta 标签。 总结来说,Nuxt.js 中可以通过配置 nuxt.config.js 文件的 head 属性来实现动态添加 meta 标签的功能,也可以在 Vue 组件中通过调用方法来动态添加和修改 meta 标签。以上是关于如何动态添加 meta 的回答,希望能帮到你。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值