在组件之间使用.once

时间:2019-06-16 20:15:24

标签: vue.js vuejs2 vue-component vuex

我正在使用。一旦方法仅触发一次,但是我的应用程序允许用户在步骤(组件)之间来回切换,并且一旦用户切换了组件然后又返回,该方法便可以再次触发。

我尝试过只使用存储在$ store数据(Vuex)中的布尔值,并让它检查一次是否触发一次,但会抛出应用程序的其余部分。我不确定添加if语句如何与其余方法触发交互。

<select v-model="updateActiveKeyword" @click.once="restOfAds()">
   <option
     v-for="option in options"
     :key="option.id"
     @input="dropDownSelect(option)"
     :bind="option"
     style="padding: 3px 80px;"
     >{{option}}</option>
   </select>

我在想可能会有一种更简单的使用方法。一旦我还没有找到在线答案,组件可能会发生变化。

1 个答案:

答案 0 :(得分:1)

一个选项可能是使用<keep-alive>组件,因此当您从一个组件移到另一个组件时,这些组件不会再次呈现,并且.once事件侦听器只能运行一次,因为它是同一实例。

选中this example

您可以在<keep-alive> here

上阅读更多内容

它有它自己的警告,例如组件实例的缓存和生命周期挂钩的执行。