为了账号安全,请及时绑定邮箱和手机立即绑定

如何在路由/网址更改时更新 vue-meta?

如何在路由/网址更改时更新 vue-meta?

UYOU 2022-07-08 10:28:24
路线更改时,我网站上的元数据不会更新。路线本身有一个watch可以很好地更新视图,但从metaInfo()没有vue-meta跟上。我的<script>代码部分如下所示:<script>    export default {        name: "Product",        watch: {            '$route.params.ProductID': {                deep: true,                immediate: true,                handler() {                    this.getProduct(); // calls getProduct() on route change. Can I also call metaInfo() from here somehow?                }            }        },        metaInfo() {            return {            title: this.Product.ProductTitle,            meta: [                {                    name: 'description', content: this.Product.ProductTitle                }            ]        }        },        computed: {            Product() {                return this.$store.getters.getProduct            }        }, mounted() {            if (this.Product == null || !this.Product.length) {                this.getProduct();            }        }, methods: {            getProduct() {                return this.$store.dispatch('loadProduct', {ProductID: this.$route.params.ProductID})            }         }    }</script>发生的事情是,当我更改路线并从/product/123to/product/124时,metaInfo()仍然显示/product/123. 如果我点击刷新,则metaInfo()更新并显示/product/124.我需要watch触发更新metaInfo()但不知道该怎么做。我在任何地方的文档中都找不到此信息。请帮忙?
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

对于反应式,在 return 语句之外使用变量。


metaInfo() {

    const title = this.Product.ProductTitle;


    return {

        title: title,

        meta: [

            {

                name: 'description', content: title

            }

        ]

    }

}

https://vue-meta.nuxtjs.org/guide/caveats.html#reactive-variables-in-template-functions


查看完整回答
反对 回复 2022-07-08
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信