这是我当前的模板:
<a-droppable v-for="n in curSize" :key="n - 1" :style="{width: `${99.99 / rowLenMap[orderList[n - 1]]}%`, order: orderList[n - 1]}">
<a-draggable :class="{thin: rowLenMap[orderList[n - 1]] > 10}">
<some-inner-element>{{rowLenMap[orderList[n - 1]]}}</some-inner-element>
</a-draggable>
</a-droppable>
问题是我要多次写 rowLenMap[orderList[n - 1]]
,恐怕vue.js引擎也会计算多次。
我想要的是这样的:
<a-droppable v-for="n in curSize" :key="n - 1" v-define="rowLenMap[orderList[n - 1]] as rowLen" :style="{width: `${99.99 / rowLen}%`, order: orderList[n - 1]}">
<a-draggable :class="{thin: rowLen > 10}">
<some-inner-element>{{rowLen}}</some-inner-element>
</a-draggable>
</a-droppable>
我认为从技术上实现并不难,因为它可以通过使用类似 v-for="rowLen in [rowLenMap[orderList[n - 1]]]"
的东西来笨拙地解决。那么有没有简洁官方的解决方案呢?
原文由 silvestris 发布,翻译遵循 CC BY-SA 4.0 许可协议
curSize
是一个数组。您的临时值包含相应的隐含数组sizedOrderList = curSize.map(n => orderList[n-1])
。如果您将其定义为计算,您的 HTML 将变为