Vue.jsでDOMを直接取得する方法【現役エンジニアが解説】
今回は、Vue.jsでDOMを直接取得する方法について、簡単に解説していきます。
ルート参照
Vue.jsではDOMの直接操作も可能です。
ルートのDOMを参照する場合には、$elを使います。
<div id="app"> <span>ほげ</span> </div> <script> var app = new Vue({ el: '#app', mounted: function() { console.log(this.$el) } }); </script>
上記のコードで、appというidの要素のDOMが取得しています。
ルート以外の参照
ルート以外の参照も可能です。
その場合は、ref属性と$refsを使うことになります。
<div id="app"> <span ref="hoge">ほげ</span> </div> <script> var app = new Vue({ el: '#app', mounted: function() { console.log(this.$refs.hoge) } }); </script>
上記のように、参照したいHTMLの要素にref属性で名前を付け、Vue.jsで$refs.ref属性の名前でDOMが取得できます。
子コンポーネントの参照
子コンポーネントを参照する場合は方法が少し異なります。
具体的には、$refsで参照した後で、$elを使う必要があります。
<div id="app"> <child-component ref="childHoge"></child-component> </div> <script> Vue.component('child-component',{ template: '<span>子ほげ</span>' }); var app = new Vue({ el: '#app', mounted: function() { console.log(this.$refs.childHoge.$el) } }); </script>
上記のコードの例では、child-componentという子コンポーネントのルートのDOMを取得しています。