[解決済み] VueJs 2.0 孫コンポーネントから孫コンポーネントへのイベントの発行
2022-06-11 05:09:20
質問
Vue.js2.0では、孫コンポーネントから孫コンポーネントへのイベント送信ができないようです。
Vue.component('parent', {
template: '<div>I am the parent - {{ action }} <child @eventtriggered="performAction"></child></div>',
data(){
return {
action: 'No action'
}
},
methods: {
performAction() { this.action = 'actionDone' }
}
})
Vue.component('child', {
template: '<div>I am the child <grand-child></grand-child></div>'
})
Vue.component('grand-child', {
template: '<div>I am the grand-child <button @click="doEvent">Do Event</button></div>',
methods: {
doEvent() { this.$emit('eventtriggered') }
}
})
new Vue({
el: '#app'
})
このJsFiddleは問題を解決します https://jsfiddle.net/y5dvkqbd/4/ を解決していますが、2つのイベントを emtting しています。
- 孫から中間コンポーネントへ
- その後、ミドルコンポーネントからグランドペアレントへ再度発信
この中間イベントを追加することは、反復的で不要に思えます。私が知らないだけで、直接グランドペアレントへ送信する方法があるのでしょうか?
どのように解決するのですか?
新解答(2018年11月更新)
を活用することで、実はこんなことができることを発見しました。
$parent
プロパティを利用することで実現できることがわかりました。
this.$parent.$emit("submit", {somekey: somevalue})
よりすっきり、よりシンプルになりました。
関連
-
vueが定義するプライベートフィルタと基本的な使い方
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】リソースの読み込みに失敗した:Bind関数でサーバーが500(Internal Server Error)のステータスで応答した【非公開
-
[解決済み】TypeErrorの解決方法。未定義またはヌルをオブジェクトに変換できない
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
JSクリックイベント - Uncaught TypeError: プロパティ 'onclick' に null を設定できません。
-
[解決済み] Vue.js - ネストされたデータを適切に監視する方法
-
[解決済み] vue.jsで子から親へのイベントを$emitする、es6構文
-
[解決済み] 親メソッドから子メソッドを呼び出す
-
[解決済み】Vue.jsコンポーネントのメソッドをコンポーネントの外から呼び出す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
fetch ネットワークリクエストラッパーの説明例
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
Vueはランニングライト形式のテキストを水平方向にスクロールする機能を実装している
-
jQueryのコピーオブジェクトの説明
-
vue ディレクティブ v-html と v-text
-
Vueでルートネスティングを実装する例
-
[解決済み】React Nativeアプリをターミナルから実行するとエラーが発生する(iOS)
-
[解決済み] TypeError: $.ajax(...) is not a function?
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
JavaScriptのgetElementById、getElementsByTagNam、getElementsByClassNameの違いと使い方