代码之家  ›  专栏  ›  技术社区  ›  imbolc

如何使用模板中的方法?

  •  2
  • imbolc  · 技术社区  · 6 年前

    在vue中,我通常将任何复杂的逻辑提取到方法中,例如

    <li v-for="todo in todos" v-show="!isTodoComplete(todo)">
      {{ todo }}
    </li>
    

    但当我用同样的方法对待苗条的时候:

    {#each todos as todo}
        <li hidden={isComplete(todo)}>{todo}</li>
    {/each}
    ...
    methods: { isComplete (todo) { ... } }
    

    我搞错了 TypeError: ctx.isComplete is not a function .

    我做错什么了吗?怎么做这样的事情苗条的方式?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Rich Harris    6 年前

    苗条区分 helpers methods .

    帮手 模板中用于处理数据的函数应该是纯函数,并且除了作为参数传入(例如 todo 对象)。

    方法 是指 事物,通常是对事件的反应。它们确实可以访问组件状态。

    在这种情况下, isComplete 应该是助手,而不是方法。