小程序如何寫動態標籤

web開發中,尤爲使用react開發項目時,咱們能夠很方便的動態定義標籤(jsx)html

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

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

在小程序的開發中,卻不能實現相似的功能,致使咱們的動態標籤一般很是的冗餘,多餘的屬性所有展現在結構生成後 git

以button爲例,咱們知道button在小程序中有很是多的屬性 github

image.png

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

動態模板

咱們的button動態模板寫下來應該是這樣的 小程序

配置工具

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

調試工具的輸出結構spa

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

能夠看到調試工具中輸出的結構就會變得很是冗餘,下降了開發效率,這種冗餘的模板輸出搞久了會吐的好吧。調試

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

解決問題

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

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

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

<button value='按鈕' />

關注咱們的開源小程序

https://github.com/webkixi/ao...

相關文章
相關標籤/搜索