您好,登錄后才能下訂單哦!
本文實(shí)例講述了VUE 動(dòng)態(tài)組件的應(yīng)用。分享給大家供大家參考,具體如下:
業(yè)務(wù)場(chǎng)景
我們?cè)陂_發(fā)表單的過程中會(huì)遇到這樣的問題,我們選擇一個(gè)控件進(jìn)行配置,控件有很多中類型,比如文本框,下來框等,這些配置都不同,因此需要不同的配置組件來實(shí)現(xiàn)。
較常規(guī)的方法是使用v-if 來實(shí)現(xiàn),這樣界面看上去比較復(fù)雜,而且需要進(jìn)行修改主頁(yè)面。
解決方案
可以使用動(dòng)態(tài)組件來實(shí)現(xiàn),為了體現(xiàn)動(dòng)態(tài)組件的特性,我們簡(jiǎn)化實(shí)現(xiàn)方式,編寫兩個(gè)簡(jiǎn)單的組件來測(cè)試一下這個(gè)功能。
文本組件配置:
<template> <div> 我是單行文本框{{config.type}} </div> </template> <script> export default { name:"rx-textbox-config", props:{ config:Object } } </script> <style> </style>
這個(gè)組件我統(tǒng)一配置一個(gè)config 的對(duì)象屬性,配置一個(gè)type 屬性。
多行文本框配置:
<template> <div> 我是多行文本框{{config.name}} </div> </template> <script> export default { name:"rx-textarea-config", props:{ config:Object } } </script> <style> </style>
這里我配置一個(gè) name的屬性。
在調(diào)用界面做寫如下代碼,導(dǎo)入組件
export default { name: 'App', components: { rxTextboxConfig, rxTextareaConfig, }
使用動(dòng)態(tài)組件:
<component :is="currentConfig" :config="config"></component>
使用代碼切換組件
this.currentConfig=ctlType +"-config"; if(ctlType=="rx-textbox"){ this.config.type="VARCHAR"; } if(ctlType=="rx-textarea"){ this.config.name="我是富文本框"; }
這里寫if 只是為了體現(xiàn)這個(gè)特性,實(shí)際實(shí)現(xiàn)不用這種方式。
希望本文所述對(duì)大家vue.js程序設(shè)計(jì)有所幫助。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。