javascript - v-for 在每个函数执行时

标签 javascript vue.js v-for

我想以每次执行函数时创建一个新 li 元素的方式使用 v-for。像这样

<ul>
    <li v-for:"someFunction()">Function started</li>
</ul>

new Vue({
    ...
    methods: {
        someFunction: function() {
            //do some stuff
        }
    }
});

有什么办法可以实现吗?

最佳答案

That's not how v-for works.

您应该创建一个数组数据属性,并在每次调用该函数时将其推送到它。然后在 v-for 指令中使用该属性:

new Vue({
  el: '#app',
  data() {
    return { items: [] };
  },
  methods: {
    someFunction: function() {
      this.items.push({});
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.4/vue.min.js"></script>
<div id="app">
  <ul>
    <li v-for="item in items">Function started</li>
  </ul>
  
  <button @click="someFunction">Call Function</button>
</div>

    


或者,如果您只需要跟踪该方法被触发的次数,您可以向 v-for 传递一个数字:

new Vue({
  el: '#app',
  data() {
    return { count: 0 };
  },
  methods: {
    someFunction: function() {
      this.count++;
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.4/vue.min.js"></script>
<div id="app">
  <ul>
    <li v-for="n in count">Function started</li>
  </ul>
  
  <button @click="someFunction">Call Function</button>
</div>

关于javascript - v-for 在每个函数执行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46567600/

相关文章:

javascript - vue v-for 带过滤器给出错误

javascript - 获取 Angular 按钮的值并将其记录到控制台

javascript - 构建 Web 组件时如何修复 "You are running Vue in development mode"?

javascript - Vue 中的链接 Promise 未按预期工作

css - 跳过 v-for vuejs2 的第一个结果

vue.js - vuejs 在 v-for 组件中访问 ref

javascript - map 更新后程序崩溃

javascript - Telerik - 将 JavaScript 文件包含在页面底部

javascript - 解析注册时超出最大调用堆栈

javascript - Vuex:如何定义一个状态变量,其值基于另一个状态变量的值?