[解決済み] VueJSは親コンポーネントから子コンポーネントのデータにアクセスする
2023-02-26 11:37:28
質問
私は vue-cli scaffold for webpackを使用しています。
私のVueのコンポーネント構造/階層構造は、現在以下のようになっています。
-
アプリ
-
PDFテンプレート
- 背景
- 動的なテンプレート画像
- 静的テンプレート画像
- マークダウン
-
PDFテンプレート
アプリのレベルでは、子コンポーネントのすべてのデータを単一のJSONオブジェクトに集約し、サーバーに送信できるvuejsコンポーネントメソッドが欲しいです。
子コンポーネントのデータにアクセスする方法はありますか?具体的には、複数のレイヤーの深さに?
そうでない場合、子コンポーネントによって変更されたときに新しい値にアクセスできるように、oberservable データ/パラメータを渡すためのベストプラクティスは何でしょうか?私はコンポーネント間のハード依存を避けようとしているので、今のところ、コンポーネント属性を使用して渡されるものは初期化値だけです。
UPDATEしてください。
堅実な回答です。両方の回答を見て、役に立つと思ったリソース。
どのように解決するのですか?
このような構造の場合、Storeのようなものがあるとよいでしょう。
VueJSはそのためのソリューションを提供しており、それはVuexと呼ばれます。Vuexを使用する準備ができていない場合は、独自の簡単なストアを作成することができます。
これでやってみましょう。
MarkdownStore.js
export default {
data: {
items: []
},
// Methods that you need, for e.g fetching data from server etc.
fetchData() {
// fetch logic
}
}
そして、このStoreファイルをインポートすることで、これらのデータをあらゆる場所で利用できるようになりました。
ホームビュー.vue
import MarkdownStore from '../stores/MarkdownStore'
export default {
data() {
sharedItems: MarkdownStore.data
},
created() {
MarkdownStore.fetchData()
}
}
これが、Vuexを使わない場合の基本的なフローです。
関連
-
[解決済み] npm run dev」「npm run watch」はどのようなスクリプトですか?
-
_this.axios is not a functionの原因と解決方法
-
Vue.js学习的第一天
-
vue springboot reports error DOMException: XMLHttpRequest'の'send'の実行に失敗しました。ロードに失敗しました
-
[解決済み】vuejs 子コンポーネントから親データを更新する
-
[解決済み】Vue.jsの別ページへのリダイレクトについて
-
[解決済み] Vue.js - シングルファイルコンポーネントでヘルパー関数をグローバルに利用できるようにする
-
[解決済み] 属性内の補間が削除されました。v-bindかコロンの省略記法を使用してください "を解決するには?Vue.js 2
-
[解決済み] V-modelと子コンポーネント?
-
[解決済み] div 内のボタンをクリックしたときに親がクリックされないようにする。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] オブジェクトのリストからオブジェクトを選択するBootstrap vue b-form-select
-
[解決済み] Vue 2.0でコンポーネント自身を削除する方法
-
[解決済み] プロジェクトのvue.jsのバージョンを確認する方法は?
-
プロキシエラーです。localhost:8090 から http:10.12.0.15:7777 へのリクエスト /queryCarList をプロキシできませんでした。
-
[解決済み] Vue.jsでグローバルフィルタを大量に追加する方法は?
-
[解決済み】名前空間が設定された2つのVuexモジュール間でアクションをディスパッチする方法はありますか?
-
[解決済み】Vue.jsの別ページへのリダイレクトについて
-
[解決済み】Vuejs:ルート変更時のイベント
-
[解決済み] Vue CLI CSSプリプロセッサーオプション:dart-sass VS node-sass?
-
[解決済み] Jest + Vuejsでwindow.location.hrefをモックするには?