1. ホーム
  2. Web プログラミング
  3. ジャバスクリプト
  4. javascriptのクラスライブラリ

vueが定義するプライベートフィルタと基本的な使い方

2022-01-13 17:20:58
プライベートフィルタとグローバルフィルタのメソッドとコンセプトは同じですが、一方はグローバルに呼び出すことができ、プライベートフィルタは自分自身でのみ呼び出すことができます。
グローバルフィルターはこちら グローバルフィルター
使い方もグローバルフィルターと同じですが、定義される場所が異なります。
グローバルフィルターは script の中で Vue.filter を定義します。
プライベートフィルター定義メソッド。
<script>
        let vm = new Vue({
            el:'#app',
            data:{
            
            },
            filters: { // filters that are private to the current instance

            }
        })
    </script>

vm の実カラムと同じものがあります。 data と同じレベルで filters は、現在のインスタンスのプライベートフィルタを定義するために使われます。
    <div id="app">
        <p>{{mes | addStr}}</p>
    </div>

    <script src=". /js/vue.js"></script>
    <script>
        let vm = new Vue({
            el:'#app',
            data:{
                mes:"I'm a pessimist, pessimists do pessimistic things"
            },
            filters: { // filters that are private to the current instance
                addStr(data,str="happy"){
                    return data.replace(/pessimistic/g,str)
                }
            }
        })
    </script>

出力されます。
ページ内に2つ目のインスタンスがある場合、そのインスタンスには vm2 を呼び出して vm を呼び出すことはありません。
ページ上にグローバルフィルターとプライベートフィルターがある場合、両方を同時に呼び出すことができる
<div id="app">
        <p>{{mes | setStr | addStr}}</p>
    </div>

    <script src=". /js/vue.js"></script>
    <script>

        Vue.filter('setStr',function(data){
            return data+'I am a global filter'
        })

        let vm = new Vue({
            el:'#app',
            data:{
                mes:"I'm a pessimist, pessimists do pessimistic things"
            },
            filters: { // filters that are private to the current instance
                addStr(data,str="happy"){
                    return data.replace(/pessimistic/g,str)
                }
            }
        })
    </script>

出力結果です。
要約すると
呼び出すときは、前がグローバル、後ろがプライベートと呼びます
が、出力はまずプライベートフィルターで処理されます
つまり、グローバルフィルターとプライベートフィルターの両方が呼ばれた場合、近い方を先に出力するのが鉄則なのです。
グローバルでプライベートが先

vueのプライベートフィルタの定義と基本的な使い方についての記事は以上です。vueのプライベートフィルタの定義については、Script Houseの過去の記事を検索していただくか、以下の記事を引き続きご覧ください。