首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Vue js中使用vue-meta从动态数据更新元信息?

如何在Vue js中使用vue-meta从动态数据更新元信息?
EN

Stack Overflow用户
提问于 2019-12-02 18:09:13
回答 1查看 808关注 0票数 0

我有一些文章有它们各自的元描述。我正在使用vue-meta替换默认的元描述。我尝试使用async和mounted属性从我的API中获取信息,但是我看不到头部的任何变化,即在相应文章的元描述中。我仍然看到Vue js设置的默认值。

这就是我所拥有的:

代码语言:javascript
复制
<script lang="ts">

import { Vue } from 'vue-property-decorator';
import VueMeta from 'vue-meta';

Vue.use(VueMeta);

export default class ArticleContent extends Vue {
  article: any | null = null;
  articlelist: any = null;
  id = 1;

  async mounted(): Promise<any> {
    this.article = this.articlelist.find((f: any) => {     <-- slug
      return f.title_slug === this.$route.params.id;
    });
    this.articlelist = await this.asyncData();
  }

  async asyncData(): Promise<any> {
    const articlelist = await this.$axios.get(             <-- call to my api
      'https://my_api...'
    );
    return articlelist.data.data;
  }

    metaInfo(): any {                                      <-- meta information
    return {
      title: 'Article',
      meta: [
        {
          hid: this.articlelist[0]._id,
          name: this.articlelist[0].productNames['en'],
          content: this.articlelist[0].metaDescription['en'],
        },
      ],
    };
  }
}
</script>

我将非常感谢你的帮助,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-12-02 20:22:23

您好,您可以使用serverPrefetch而不是使用asyncData

尝尝这个

代码语言:javascript
复制
 serverPrefetch():Promise<any> {
  // this function should return Promise
   return this.$axios.get(
      'https://my_api...'
    ).then(result => {
          this.articlelist = result.data.data
      });

  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59136632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档