Знаете ли вы, как заставить деструктурировать объект в IE11?
Учитывая следующий код:
<list entity="ApplicationEntity" api-action="get_internal" v-slot="{item}">
<list-column title="Name" ordering="name">
${ item.name }
</list-column>
</list>
Часть v-slot="{item}"
не работает на IE ( и даже на старых версиях Edge).
Чтобы это работало, я должен написать:
<list entity="ApplicationEntity" api-action="get_internal" v-slot:default="slotProps">
<list-column title="Name" ordering="name">
${ slotProps.item.name }
</list-column>
</list>
Это не имеет большого значения, но в больших шаблонах это может иметь существенное значение на удобочитаемость.
Один важный примечание: приведенный выше код является частью twig
шаблона, поэтому html не является частью процесса сборки клиента.
Спасибо за вашу помощь.
РЕДАКТИРОВАТЬ
После отладки источника VueJS я видел сгенерированный код.
Если я напишите:
<test v-slot="slotProps">
${ slotProps.item.toto }
</test>
Сгенерированный код:
_c('test',{scopedSlots:_u([{key:"default",fn:function(slotProps){return [_v(_s(slotProps.item.toto))]}}])})
И если я напишу:
<test v-slot="{item}">
${ item.toto }
</test>
Это дает:
_c('test',{scopedSlots:_u([{key:"default",fn:function({item}){return [_v(_s(item.toto))]}}])})
Таким образом, разница сводится к:
function(slotProps)
// vs
function({item})
Я понимаю для IE11, но я не понимаю для края 20.
Так что если я попытаюсь:
function test(obj) {
console.log(obj.item);
}
function test2({item}) {
console.log(item);
}
test({item: 2});
test2({item: 2});
Я получил два раза 2
в консоли на Chrome, б но ничего о IE11 или Edge 20.