javascript - Vue.js 中可重用的递增和递减函数

标签 javascript vue.js

我是 Vue.js 的新手,仍在练习所有功能。我想知道如何根据这段代码编写可重用的递增和递减函数——这就是我现在所拥有的,但它是重复的。所以我想对两个不同的按钮使用递增/递减功能。 Here's jsfiddle demo!

 new Vue ({
  el: "#pomodoro-clock",
  data: {
    breakLength: 5,
    sessionLength: 25,
  },
  methods: {
    addBreak: function(inc){
      this.breakLength += inc;
    },
    subtractBreak: function(dec){
      if(this.breakLength === 1) return;
      this.breakLength -= dec;
    },
    addSession: function(inc){
      this.sessionLength += inc;
    },
    subtractSession: function(dec){
      if(this.sessionLength === 1) return;
      this.sessionLength -= dec;
    }
  }
});

最佳答案

这是可重用方法的示例。

methods: {
  inc(property, amt){
    this[property] += amt
  },
  dec(property, amt){
    if (this[property] === 1) return
    this[property] -= amt
  },
  ...
}

在你的模板中:

<span class="clock__btn--add" v-on:click="inc('breakLength', 1)">+</span>
<span class="clock__break-length">{{breakLength}}</span>
<span class="clock__btn--subtract" v-on:click="dec('breakLength', 1)">-</span>

已更新 fiddle .

关于javascript - Vue.js 中可重用的递增和递减函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45654205/

相关文章:

javascript - 当通过 Javascript 按下回车按钮时调用一个函数

javascript - 从回调获取代码或在 Javascript (Node.js) 中存储回调

javascript - 如何正确调用addAttribute方法?

javascript - Vuejs 和 Vue.set(),更新一个 Key/Value 数组

javascript - 来自调用 Web Api 2 应用程序的 Angular 节点应用程序的 401 未经授权的 ajax 调用

javascript - Webpack 依赖管理和 Vue.js 异步组件加载

Javascript Vue 或 React 存储敏感信息客户端安全

javascript - Vue 在向数组添加非顺序索引时不断添加未定义的值?

javascript - 使用 Vuejs,如何以正确的方式在 v-for 循环中使用模态组件

javascript - 为什么 window.open 无法打开电话调用链接?