この記事は2020年03月27日に投稿しました。
目次
リンク
1. はじめに
こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回は業務で使用しているVue.jsのコンポーネントで子のデータを親へ送る方法についてです。
2. Vue.jsのコンポーネントで子のデータを親へ送る
Vue.jsのコンポーネントで子のデータを親へ送るには、子のデータを$emitの引数で渡します。
実装例
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Sample</title> </head> <body> <!-- 'app'のタグはVue.jsによって操作されます。 --> <div id="app"> <!-- コンポーネントを表示します。 --> <!-- コンポーネントのカスタムイベント"childEvent"が発生した場合、親の"parentMethod"を呼び出します。 --> <comp-child v-on:child-event="parentMethod"></comp-child> </div> <!-- Vue.jsを使用します。 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="vue.js"></script> <!-- Vue.jsで操作する内容です。 --> <script> Vue.config.productionTip = false // コンポーネントを定義します。 // new Vueの前に定義します。 Vue.component('comp-child', { // 入力した内容を親に渡しします。 template: '<div><input type="text" v-model="value"/><button v-on:click="clickHandler">イベント発生</button></div>', // 親に渡すデータ"value"を定義します。 data: function() { return { value: '' } }, methods: { // ボタンが押下された時に呼び出されます。 clickHandler: function() { // データ"value"を引数として、カスタムイベント"child-event"を発生させます。 this.$emit('child-event', this.value) } } }) var app = new Vue({ // divタグの'app'内を操作対象とします。 el: '#app', methods: { // コンポーネントのカスタムイベント"childEvent"が発生した場合に呼び出されます。 // コンポーネントのデータ"value"が引数で渡されます。 parentMethod: function(value) { alert(value) } } }) </script> </body> </html>
3. おわりに
前回は
といいつつ、コンポーネントのデータは渡していませんでした。
今回の方法でコンポーネントのデータが渡せるようになります。
リンク
紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。
私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリやウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。
また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。
EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688