2.6.10
https://codesandbox.io/s/vue-template-7hwty
$attrs
Π΅ΡΠ»ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Ρ ΠΊΠ»ΡΡΠΎΠΌ, ΡΠ°Π²Π½ΡΠΌ attr.Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΈ $attrs
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
Π Π΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π²Π°ΠΆΠ΄Ρ, ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ attrs
, ΠΊΠ»ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΊΠ»ΡΡΠΎΠΌ props
Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
Π― ΡΠΎΠ·Π΄Π°Π» Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π»Π΅Π½ΠΈΠ²ΡΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ https://vuejs.org/v2/guide/components-dynamic-async.html#Handling -Loading -ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²ΠΎ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ (Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅).
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ $attrs
: {...this.$attrs}
ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ οΌ
render(h) {
console.log("Attributes of loader:", this.$attrs);
if (this.targetComponent) {
return h(this.targetComponent, {
props: this.$attrs // Change attrs to propsοΌnot `attrs: this.$attrs`
});
} else {
return h("div", "Component is loading");
}
}
ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ
const targetComponent = {
props: {
// COMMENT PROP
someProp: {
type: String
}
},
render(h) {
console.log("Props of target", this.$props); // You can not get $props when render params only has attrs
return h("div", "WITH PROP:" + this.someProp);
}
};
Π ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ attrs, ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΠ° ΡΠ΅ΡΠ°ΡΡ ΠΌΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ ΠΌΠ½Π΅ Π²ΡΠ΅ Π΅ΡΠ΅ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ $attrs
ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈΠ·-Π·Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΊΠ»ΡΡΠΎΠΌ?
ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ $attrs
ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½. Π― Π·Π½Π°Π», ΡΡΠΎ Π²ΠΈΠ΄Π΅Π» ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π³Π΄Π΅-ΡΠΎ Π΅ΡΠ΅:
ΠΡΠ±Π»ΠΈΠΊΠ°Ρ https://github.com/vuejs/vue/issues/10115