小程序如何寫動態(tài)標(biāo)簽的實現(xiàn)方法
web開發(fā)中,尤其使用react開發(fā)項目時,我們可以很方便的動態(tài)定義標(biāo)簽(jsx)
const props = { id: '', className: '', data-a: '' } <button {...props} />
動態(tài)配置標(biāo)簽的好處一是所有邏輯在JS端控制,二是使得我們的模板非常規(guī)范,方便后續(xù)維護更新,碎片模板可以很好的控制,三是我們可以根據(jù)使用場景很方便的配置props的屬性,這樣在html結(jié)構(gòu)輸出的時候能夠得到比較干凈的結(jié)構(gòu)
在小程序的開發(fā)中,卻不能實現(xiàn)類似的功能,導(dǎo)致我們的動態(tài)標(biāo)簽通常非常的冗余,多余的屬性全部展示在結(jié)構(gòu)生成后
以button為例,我們知道button在小程序中有非常多的屬性
如上所示,這里只是列舉了一部分的屬性
動態(tài)模板
我們的button動態(tài)模板寫下來應(yīng)該是這樣的
配置
Page({ data: { option: { ... } } })
<button size="{{option.size || 'default'}}" type="{{option.type || 'default'}}" plain="{{option.plain || false}}" value="{{option.value || '按鈕'}}" ... ... />
調(diào)試工具的輸出結(jié)構(gòu)
<button bindtap='' size='' type='' plain='' disabled=false open-typ='' hover-class='' .... />
可以看到調(diào)試工具中輸出的結(jié)構(gòu)就會變得非常冗余,降低了開發(fā)效率,這種冗余的模板輸出搞久了會吐的好吧。
可以使用模板語法區(qū)分不同場景的button,我知道會有很多這樣的聲音,但那不是動態(tài)模板。
解決問題
那要如何解決輸出結(jié)構(gòu)不冗余呢,說了這么多終于到了重點,其實真的只是一個很小的技巧,我的開發(fā)經(jīng)歷告訴我這是有效的,你也可以試試,將默認值統(tǒng)統(tǒng)換成 ''
,改版后的模板如下
<button size="{{option.size || ''}}" type="{{option.type || ''}}" plain="{{option.plain || ''}}" value="{{option.value || '按鈕'}}" ... ... />
這時你得到的模板就是一段漂亮的結(jié)構(gòu)
<button value='按鈕' />
關(guān)注我們的開源小程序
https://github.com/webkixi/aotoo-xquery
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
微信小程序購物商城系統(tǒng)開發(fā)系列-工具篇的介紹
這篇文章主要介紹了微信小程序購物商城系統(tǒng)開發(fā)系列-工具篇的介紹,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2016-11-11JavaScript高級程序設(shè)計(第三版)學(xué)習(xí)筆記1~5章
這篇文章主要介紹了JavaScript高級程序設(shè)計(第三版)學(xué)習(xí)筆記1~5章 的相關(guān)資料,需要的朋友可以參考下2016-03-03js中apply和Math.max()函數(shù)的問題及區(qū)別介紹
這篇文章主要介紹了js中apply和Math.max()函數(shù)的問題,本文給大家?guī)韮煞N答案,每一種答案給大家介紹的非常詳細,在文章底部給大家提到了js中Math.max.apply和Math.max的區(qū)別,感興趣的朋友一起看看吧2018-03-03