recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment optimiser ce composant Vue?

<template>
  <p>
    <ul>
      <li>帐号 <input type="text" name="user"></li>
      <li>密码 <input type="password" name="password"></li>
    </ul>
    <ul v-if="title == '用户注册'">
      <li>确认密码 <input type="password" name="password"></li>
      <li>邮箱 <input type="text" name="email"></li>
      <li>
        <input type="submit" value="注册">
        <input v-on:click='change' type="button" value="登录">
      </li>
    </ul>
    <ul v-else>
      <li>
        <input type="submit" value="登录">
        <input v-on:click='change' type="button" value="注册">
        忘记密码?
      </li>
    </ul>
  </p>
</template>

Parce que v-if doit être monté dans l'élément. Bien que cela puisse permettre une commutation, l'élément d'attribut du bouton semble irrégulier

.
<script>
export default{
  data () {
    return {
      title: '用户登录'
    }
  },
  methods: {
    change: function () {
      this.title = this.title === '用户登录' ? '用户注册' : '用户登录'
    }
  },
  watch: {
    title: function () {
      this.$store.commit('setValue', {title: this.title})
    }
  },
  created: function () {
    this.$store.commit('setValue', {title: this.title})
  }
}
</script>

title est le titre de la page. Bien que cela implémente le chargement et le changement de titre par défaut, il semble que le code soit redondant. Existe-t-il un moyen simple ?

伊谢尔伦伊谢尔伦2756 Il y a quelques jours398

répondre à tous(1)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:27:59

    Celui qui me vient à l'esprit en ce moment

      methods: {
        change: function () {
          this.title = this.title === '用户登录' ? '用户注册' : '用户登录'
          this.$store.commit('setValue', {title: this.title})
          return this.title
        }
      },
      created: function () {
        this.change()
      }

    répondre
    0
  • Annulerrépondre