Vue.jsのcomputedで引数を使いたい

Vuejsで便利なcomputedですけど、引数取りたいって思うタイミングがあり検証。
ちなみに引数とりたいタイミングは、ループでテーブル作成してるときとかです。

lambda式(アロー関数)を使えばできました。

<template>
  <div id="app">
    <p>sample('a'):{{sample('a')}}</p>  // <- 使用箇所
    <p>sample('r'):{{sample('r')}}</p>  // <- 使用箇所
  </div>
</template>

<script>
export default {
  name: "App",
  computed: {
    sample() {
      return r => r === "a";   // <-  ここでアロー関数を実行
    }
  }
};
</script>

出力結果はこちら。

sample('a'):true

sample('r'):false

computed特有のキャッシュ等が効かないらしいけど、methodとwatchでやるんだったらあんまりかわらなくて、computedですっきりかけた方がいいかなと思うので採用します。

mapとflatmapのメモ

mapとflatmapのメモ.

map: 個数が変わらない。2個渡したら2個返ってくる
flatmap: streamに変換させて、それを合成する。戻ってくるのはstreamが1つ。flatmapはstreamを合成してくれる感じのいいやつ。

@RunWith(JUnit4.class)
public class SampleTest {
    @Test
    public void test() {

        // map
       Arrays.asList("a,b,c", "d,e")
            .stream()
            .map(e -> Arrays.stream(e.split(",")))
            .forEach(System.out::println);

        // flatmap
        Arrays.asList("a,b,c", "d,e")
            .stream()
            .flatMap(e -> Arrays.stream(e.split(",")))
            .forEach(System.out::println);
    }
}

出力結果は下記

# map
java.util.stream.ReferencePipeline$Head@18ce0030
java.util.stream.ReferencePipeline$Head@4445629

# flatmap
a
b
c
d
e