значение в href с вычисляемым свойством не является динамическим

#vue.js #nuxtjs

#vue.js #nuxtjs

Вопрос:

В принципе, я хочу, чтобы динамическая ссылка была на моей a href основе на основе кода. Где я хочу, чтобы моя ссылка была на example2.com когда веб-сайт, использующий мой код NuxtJS, example1.com .. Однако оно всегда будет связано с / вместо example2.com .. Это действительно странно, поскольку это хорошо видно в инструменте проверки Vue и в {{ backHref }} том, что он уже возвращается example2.com .. Однако это не отражает :href

 /* eslint-disable vue/no-v-html */
<template>
  <div class="h-100 bg-ededed">
    <a :href="backHref">{{ backHref }}</a>
  </div>
</template>

<script>
import { mapState } from 'vuex'

export default {
  meta: { noFooter: true },

  computed: {
    ...mapState({
      chatRooms: (state) => state.chat.chatRooms
    }),
    backHref() {
      let link
      if (this.chatRooms.length === 1) {
        console.log(`this.isExample: ${this.isExample}`)
        if (this.isExample) {
          console.log('went here 1')
          link = 'https://example2.com'
        } else {
          console.log('went here 2')
          link = '/'
        }
      } else {
        link = '/chat/'
      }
      console.log(
        `this.addChannelCodeLink(link): ${this.addChannelCodeLink(link)}`
      )
      return this.addChannelCodeLink(link)
    },
    getDomain() {
      let host
      if (process.client amp;amp; window) {
        host = window.location.host
      }
      return host
    },
    isExample() {
      return this.getDomain ? this.getDomain.includes('example1.com') : false
    }
  },
  methods: {
    addChannelCodeLink(link) {
      if (this.$route.query.r) {
        link  = `?r=${this.$route.query.r}`
      }
      return link
    }
  }
}
</script>

<style lang="scss" scoped></style>

 

Console.log будет что-то вроде этого:

 - While in SSR
this.isExample: false
went here 2
this.addChannelCodeLink(link): /

- In Client
this.isExample: true
went here 1
this.addChannelCodeLink(link): http://example2.com

 

Комментарии:

1. Что вы получаете в журнале консоли?

2. перешел сюда 2 в SSR, затем перешел сюда 1 в клиенте

3. Отсутствует «this.addChanneCodeLink»?

4. Что вы имеете в виду? Пример кода работает нормально. Проблема в том, что значение backHref in :href остается /

5. Я имел в виду, что это помогло бы увидеть полный журнал консоли.