Vueの外からメソッドをコールしたりデータを参照する方法

Vueで全てが完結していれば美しいし理想的だけど
設計が悪いのかもしれないが、たまにJavaScriptからVue内部のメソッドをコールしたい時や
Vue内部のデータにアクセスしたい時が発生する。

こんなVueがあったとして

<script>
$(function(){

    var app = new Vue({
        el: '#app',
        data: {
            message: ''
        },
        methods: {
            disp(message){
                alert(this.message);
            }
        }
    })

});
</script>

■Vueの外からメソッドをコール

<script>
    app.disp('hello');
</script>

Vue内のdispメソッドがコールされ、’hello’アラートが表示される

■Vueの外から変数にアクセス

<script>
    alert(app.message);
</script>

Vue内のmessage変数の値がアラートで表示される

<script>
    app.message = 'abc';
</script>

Vue内のmessage変数に’abc’をセットする

カプセル化になってないし
こういう実装の仕方って多分よろしくない方法だと思うけど、一応動作します。

正しい実装を知りたいなぁ。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です