微信ウィジェットの親子間コンポーネントの参照
9977 ワード
1.コンポーネントの作成
微信開発者ツールを開き、コンポーネントを作成すると、wxml、wxss、js、jsonの4つのファイルが生成されます.
wxmlで:
jsで:
jsonで:
コンポーネントの作成が完了しました
2.コンポーネントの導入
indexにコンポーネントを導入するには
indexでjson:
indexでwxml:
コンポーネントを表示できます.コンポーネントを導入するには、wxmlに表示するには、jsonでコンポーネントを定義します.
3.親コンポーネントから子コンポーネントへの参照
宣言:Aコンポーネントは親コンポーネント、Bコンポーネントは子コンポーネント、以下はAコンポーネントからBコンポーネントへの参照です.
AコンポーネントにBコンポーネントを導入する
Aコンポーネントのjsonに書き込み:
Aコンポーネントのwxmlに次のように書き込みます.
Bコンポーネントのjsに書き込みます.
すなわちpropertiesでAコンポーネントが渡すパラメータタイプを定義する
Bコンポーネントのwxmlに次のように書き込みます.
まとめ:AコンポーネントはBコンポーネントにパラメータを伝達し、実際にはAコンポーネントにBコンポーネントを導入するときに、1つの属性paramAtoBを持ってきて、それに値を割り当て、それからBコンポーネントはこの属性名paramAtoBを通じて、その値を取得する
4.子コンポーネントから親コンポーネントへの参照
宣言:Aコンポーネントは親コンポーネントであり、Bコンポーネントは子コンポーネントであり、以下はBコンポーネントがAコンポーネントに参照する.
子コンポーネントを親コンポーネントにパラメータを渡すには、まず、親コンポーネントが子コンポーネントを導入するときに、次のようにトリガイベントを追加します.
親コンポーネントAでwxml:
myeventはバインドされたトリガイベントです
親コンポーネントAでjs:
onMyEventは布団コンポーネントがトリガーされたときの関数です
サブアセンブリBでwxml:
buttonボタンクリックイベントがトリガーされると、パラメータが親コンポーネントAに入力され、子コンポーネントBにjs:
this.triggerEventはボタンをクリックして実行するイベントで、myeventイベントをトリガーし、パラメータparamBtoAを入力して親コンポーネントに入ります.
以上が微信ウィジェットの親子コンポーネント間のパラメータで、後期に新しい発見があれば不定期に更新されます!
ソースアドレス:https://github.com/CandyGo/wx-component-param
微信開発者ツールを開き、コンポーネントを作成すると、wxml、wxss、js、jsonの4つのファイルが生成されます.
wxmlで:
<view> Aview>
jsで:
Component({
behaviors: [],
properties: {
},
data: {
}, // ,
// , , methods
attached: function () { },
moved: function () { },
detached: function () { },
methods: {
}
})
jsonで:
{
"component": true,
"usingComponents": {}
}
コンポーネントの作成が完了しました
2.コンポーネントの導入
indexにコンポーネントを導入するには
indexでjson:
{
"usingComponents": {
"componentA": "../../components/child1/child1"
}
}
indexでwxml:
<view>
<view> view>
<componentA />
view>
コンポーネントを表示できます.コンポーネントを導入するには、wxmlに表示するには、jsonでコンポーネントを定義します.
3.親コンポーネントから子コンポーネントへの参照
宣言:Aコンポーネントは親コンポーネント、Bコンポーネントは子コンポーネント、以下はAコンポーネントからBコンポーネントへの参照です.
AコンポーネントにBコンポーネントを導入する
Aコンポーネントのjsonに書き込み:
{
"component": true,
"usingComponents": {
"componentB": "../child2/child2"
}
}
Aコンポーネントのwxmlに次のように書き込みます.
<view> Aview>
<view>
<view> :view>
<componentB paramAtoB=' A B '/>
view>
Bコンポーネントのjsに書き込みます.
Component({
behaviors: [],
properties: {
paramAtoB:String
},
data: {
}, // ,
// , , methods
attached: function () { },
moved: function () { },
detached: function () { },
methods: {
}
})
すなわちpropertiesでAコンポーネントが渡すパラメータタイプを定義する
Bコンポーネントのwxmlに次のように書き込みます.
<view style='border:2px solid gray;'>
<view style='text-align:center;'> Bview>
<view>A :{{paramAtoB}}view>
view>
まとめ:AコンポーネントはBコンポーネントにパラメータを伝達し、実際にはAコンポーネントにBコンポーネントを導入するときに、1つの属性paramAtoBを持ってきて、それに値を割り当て、それからBコンポーネントはこの属性名paramAtoBを通じて、その値を取得する
4.子コンポーネントから親コンポーネントへの参照
宣言:Aコンポーネントは親コンポーネントであり、Bコンポーネントは子コンポーネントであり、以下はBコンポーネントがAコンポーネントに参照する.
子コンポーネントを親コンポーネントにパラメータを渡すには、まず、親コンポーネントが子コンポーネントを導入するときに、次のようにトリガイベントを追加します.
親コンポーネントAでwxml:
<view style='padding:20px;border:2px solid red;'>
<view style='text-align:center;'> Aview>
<view>
<view>A :view>
<view>B :{{paramBtoA}}view>
<componentB paramAtoB=' A B ' bind:myevent="onMyEvent"/>
view>
view>
myeventはバインドされたトリガイベントです
親コンポーネントAでjs:
Component({
behaviors: [],
properties: {
},
data: {
}, // ,
// , , methods
attached: function () { },
moved: function () { },
detached: function () { },
methods: {
onMyEvent:function(e){
this.setData({
paramBtoA: e.detail.paramBtoA
})
}
}
})
onMyEventは布団コンポーネントがトリガーされたときの関数です
サブアセンブリBでwxml:
<view style='border:2px solid gray;'>
<view style='text-align:center;'> Bview>
<view>A :{{paramAtoB}}view>
<button bindtap='change'> A button>
view>
buttonボタンクリックイベントがトリガーされると、パラメータが親コンポーネントAに入力され、子コンポーネントBにjs:
Component({
behaviors: [],
properties: {
paramAtoB:String
},
data: {
}, // ,
// , , methods
attached: function () { },
moved: function () { },
detached: function () { },
methods: {
change:function(){
this.triggerEvent('myevent', { paramBtoA:123});
}
}
})
this.triggerEventはボタンをクリックして実行するイベントで、myeventイベントをトリガーし、パラメータparamBtoAを入力して親コンポーネントに入ります.
以上が微信ウィジェットの親子コンポーネント間のパラメータで、後期に新しい発見があれば不定期に更新されます!
ソースアドレス:https://github.com/CandyGo/wx-component-param