@ click事件中的问题,该问题添加了一个更大的字体图标

问题描述 投票:0回答:2

[当我尝试添加'@click'来切换汉堡栏或关闭图标时,我尝试使用vue js进行响应式导航,但是每​​次单击它时,它都会添加'关闭'图标。

这里是代码

模板部分

<template>    
// ----
    <button @click="toggleButton">
                <i v-if="!toggle" class="fas fa-bars"></i>
                <i v-if="!toggleClose" class="fas fa-times"></i>
              </button>
    // ----

</template>

脚本部分

<script>
export default {
  name: "MultiNav",
  data: function() {
    return {
      toggle: false,
      toggleClose: true
    };
  },
  methods: {
    toggleButton() {
      this.toggle = !this.toggle;
      this.toggleClose = !this.toggleClose;
    }
  }
};
</script>

pict:the output

我尝试使用:

 <button @click="toggle = ! toggle">
     <i v-if="!toggle" class="fas fa-bars"></i>
     <i v-if="toggle" class="fas fa-times"></i>
 </button>

仍然产生相同的结果

javascript vue.js font-awesome vue-cli
2个回答
1
投票

您需要向图标添加键。

 <button @click="toggle = ! toggle">
    <i v-if="!toggle" key="bars" class="fas fa-bars"></i>
    <i v-if="toggle" key="times" class="fas fa-times"></i>
 </button>

键将告诉Vue算法,图标实际上是不同的元素。否则,虚拟dom表示会认为它们是同一元素。


0
投票

尝试使用条件切换类

<button @click="toggle = ! toggle">
     <i  class="fas" :class="toggle?'fa-times':'fa-bars'"></i>
</button>
© www.soinside.com 2019 - 2024. All rights reserved.