這篇文章主要介紹Vue結(jié)合原生js如何實現(xiàn)自定義組件自動生成,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)建站提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁設(shè)計,品牌網(wǎng)站設(shè)計,廣告投放等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,10年的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設(shè),成功案例突破上千余家,是您實現(xiàn)網(wǎng)站建設(shè)的好選擇.就目前三大前端主流數(shù)據(jù)驅(qū)動框架(vue,ng,react)而言,均具有創(chuàng)建自定義組件的api,但都是必須先做到事先寫好掛載點,這個掛載點可以是原有靜態(tài)元素標(biāo)簽也可以是自定義模板;對于多種組件通過同一數(shù)據(jù)流生成的,如果事先在頁面上寫好掛載點(mounted),然后通過dom操作去動態(tài)添加,會遇到類似這樣一條錯誤提示信息:Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.(…)。這又是為何呢,下一步該怎么辦?
原因是任何dom操作的對象必須是符合W3C標(biāo)準(zhǔn)的元素,除非如下所述的,改寫生成html元素對象的原型(HTMLElement.prototype)并注冊自定義元素,從而實現(xiàn)動態(tài)生成自定義組件的效果。
不過,大家都明白使用數(shù)據(jù)驅(qū)動框架的初衷就是盡可能避免dom操作,而如下代碼中還是有一些dom操作的,就目前認(rèn)知水平而言,感覺這些必要的dom操作還是避免不了的。其它不多說了,直接看代碼。。。
為了保持代碼的可維護(hù)性及易讀性,我將模板部分單獨放在fuhao-components.js的文件里邊,如下所示:
var textTpl='';var checkboxTpl= ''; var selectTpl= '';var textareaTpl= '';var radioTpl= '';
最終渲染效果如下:
鑒于vue結(jié)合dom操作動態(tài)生成自定義組件,控制臺會報一定的錯誤這一點bug還在努力修復(fù)中,可能需要更加深入地了解vue數(shù)據(jù)綁定及傳遞機(jī)制與js動態(tài)注冊自定義組件的深入領(lǐng)會,繼續(xù)努力中。。。
以上是“Vue結(jié)合原生js如何實現(xiàn)自定義組件自動生成”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。