[解決済み] VueJSで動的なコンポーネントに動的にpropsを渡す
2022-05-08 01:50:24
質問
ダイナミックビューにしました。
<div id="myview">
<div :is="currentComponent"></div>
</div>
と、関連するVueインスタンス。
new Vue ({
data: function () {
return {
currentComponent: 'myComponent',
}
},
}).$mount('#myview');
これによって、コンポーネントをダイナミックに変化させることができるんだ。
私の場合、3種類のコンポーネントを持っています。
myComponent
,
myComponent1
そして
myComponent2
. そして、こんな風に切り替えています。
Vue.component('myComponent', {
template: "<button @click=\"$parent.currentComponent = 'myComponent1'\"></button>"
}
今、私は、次の人に小道具を渡したいと思っています。
myComponent1
.
コンポーネントの種類を次のように変更した場合、これらのプロップをどのように渡せばよいのでしょうか。
myComponent1
?
解決方法は?
プロップを動的に渡すためには
v-bind
ディレクティブを使用し、プロップの名前と値を含むオブジェクトを渡します。
つまり、ダイナミックコンポーネントは次のようになります。
<component :is="currentComponent" v-bind="currentProperties"></component>
そして、Vueインスタンスでは
currentProperties
は、現在のコンポーネントに基づいて変更することができます。
data: function () {
return {
currentComponent: 'myComponent',
}
},
computed: {
currentProperties: function() {
if (this.currentComponent === 'myComponent') {
return { foo: 'bar' }
}
}
}
ということで、今度は
currentComponent
は
myComponent
を持つことになります。
foo
と同じプロパティを持つ
'bar'
. そして、そうでないときは、何のプロパティも渡されません。
関連
-
vue for 登録ページ効果 vue for sms 認証コードログイン
-
Vueのフォームイベントのデータバインディングの説明
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
jq は html ページとデータを動的に分割する。
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] 動的に生成された要素にイベントバインディングを行うか?
-
[解決済み] 小道具」の変化の聞き取り方
-
[解決済み】 {this.props.children} に props を渡すには?}
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
親子コンポーネント通信を解決する3つのVueスロット
-
JavaScriptにおけるマクロタスクとミクロタスクの詳細
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
JavaScriptの配列共通メソッド解説
-
Vueのクラススタイルの使い方の詳細
-
Vueのフォームイベントのデータバインディングの説明
-
[解決済み】リクエストに失敗していないのに、「TypeError: failed to fetch」が表示される。
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)
-
モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'D:\.... \node_modules
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR