1. 程式人生 > 程式設計 >小程式如何寫動態標籤的實現方法

小程式如何寫動態標籤的實現方法

web開發中,尤其使用react開發專案時,我們可以很方便的動態定義標籤(jsx)

const props = {
 id: '',className: '',data-a: ''
}
<button {...props} />

動態配置標籤的好處一是所有邏輯在JS端控制,二是使得我們的模板非常規範,方便後續維護更新,碎片模板可以很好的控制,三是我們可以根據使用場景很方便的配置props的屬性,這樣在html結構輸出的時候能夠得到比較乾淨的結構

在小程式的開發中,卻不能實現類似的功能,導致我們的動態標籤通常非常的冗餘,多餘的屬性全部展示在結構生成後

以button為例,我們知道button在小程式中有非常多的屬性

小程式如何寫動態標籤的實現方法

如上所示,這裡只是列舉了一部分的屬性

動態模板

我們的button動態模板寫下來應該是這樣的

配置

Page({
 data: {
  option: {
   ...
  }
 }
})
<button
 size="{{option.size || 'default'}}"
 type="{{option.type || 'default'}}"
 plain="{{option.plain || false}}"
 value="{{option.value || '按鈕'}}"
 ...
 ...
/>

除錯工具的輸出結構

<button bindtap='' size='' type='' plain='' disabled=false open-typ='' hover-class='' .... />

可以看到除錯工具中輸出的結構就會變得非常冗餘,降低了開發效率,這種冗餘的模板輸出搞久了會吐的好吧。

可以使用模板語法區分不同場景的button,我知道會有很多這樣的聲音,但那不是動態模板。

解決問題

那要如何解決輸出結構不冗餘呢,說了這麼多終於到了重點,其實真的只是一個很小的技巧,我的開發經歷告訴我這是有效的,你也可以試試,將預設值統統換成 '',改版後的模板如下

<button
 size="{{option.size || ''}}"
 type="{{option.type || ''}}"
 plain="{{option.plain || ''}}"
 value="{{option.value || '按鈕'}}"
 ...
 ...
/>

這時你得到的模板就是一段漂亮的結構

<button value='按鈕' />

關注我們的開源小程式

https://github.com/webkixi/aotoo-xquery

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。