【问题标题】:Using .once between components在组件之间使用 .once
【发布时间】:2019-06-16 20:15:24
【问题描述】:

我正在使用 .Once 让方法只触发一次,但我的应用程序允许用户在步骤(组件)之间来回切换,一旦用户切换了组件然后返回,该方法就能够再次触发。

我尝试使用存储在 $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>

我在想可能有一种更简单的方法来利用 . 一旦我还没有找到在线的答案,组件可以更改。

【问题讨论】:

  • 太棒了,谢谢它成功了!从我正在阅读的内容来看,这似乎不是最佳实践,但考虑到该组件中没有太多数据或任何 API 调用,它应该可以正常工作。再次感谢
  • 另一种选择确实是全局存储该按钮已被单击并阅读。

标签: vue.js vuejs2 vue-component vuex


【解决方案1】:

一种选择可能是使用&lt;keep-alive&gt; 组件,因此当您从一个组件移动到另一个组件时不会再次呈现组件,并且 .once 事件侦听器可能只运行一次,因为它是同一个实例。

检查this example

你可以在&lt;keep-alive&gt;here阅读更多内容

它有一些您应该注意的警告,例如组件实例的缓存和生命周期挂钩执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 2017-11-07
    • 2020-03-25
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多