Vue動(dòng)態(tài)組件與內(nèi)置組件淺析講解
一、動(dòng)態(tài)組件
在vue中,有很多的組件可以掛載同一個(gè)掛載點(diǎn)上面,要在同一個(gè)掛載的點(diǎn)上的多個(gè)組件之間可以實(shí)現(xiàn)動(dòng)態(tài)的切換渲染,我們可以通過內(nèi)置組件component的is屬性動(dòng)態(tài)的綁定組件,然后我們就可以根據(jù)is的值來決定哪一個(gè)組件要被渲染,非常的方便。
我們通過一點(diǎn)簡單的實(shí)例代碼可以加深了解:
示例代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<title>組件之間的傳遞</title>
</head>
<body>
<div id="app">
<h1>小小閑置網(wǎng)</h1>
<input type="radio" name="tab" value="qiubite1" v-model="cfl">王者賬號(hào):
<img src="C:\Users\Administrator\Desktop\李寶\wangzhe.jpg" alt="" style="width: 30px;height:30px">
<input type="radio" name="tab" value="qiubite2" v-model="cfl">電話:
<input type="radio" name="tab" value="qiubite3" v-model="cfl">估價(jià):
<component v-bind:is="cfl"></component>
</component>
</div>
<template id="n1">
<div style="width: 200px;height: 200px;border: 2px solid rgb(100, 100, 196);">
<h1>賬號(hào)</h1>
<input type="text" placeholder="輸入你的賬號(hào):">
</div>
</template>
<template id="n2">
<div style="width: 200px;height: 200px;border: 2px solid rgb(100, 100, 196);">
<h1>電話</h1>
<input type="text" placeholder="輸入你的電話:">
</div>
</template>
<template id="n3">
<div style="width: 200px;height: 200px;border: 2px solid rgb(100, 100, 196);">
<h1>估價(jià):</h1>
<input type="text" placeholder="你心儀賣出的價(jià)格:">
</div>
</template>
<script src="http://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
<script>
var vm = new Vue({
el:"#app",
data:{cfl:"qiubite1"},
components:{
'qiubite1':{template:'#n1'},
'qiubite2':{template:'#n2'},
'qiubite3':{template:'#n3'},
}
})
</script>
</body>
</html>運(yùn)行結(jié)果:

我們可以看到三個(gè)按鈕的value的值設(shè)置成了組件的名字,雙向綁定cfl(懲罰陸,沒什么含義,自己亂起的)數(shù)據(jù),單擊按鈕,就可以改變value的值從而更新cfl里面的值;component組件的is屬性動(dòng)態(tài)的綁定了cfl里面的值,根據(jù)這個(gè)is就知道哪個(gè)組件被渲染了。
二、內(nèi)置組件
根據(jù)上面的實(shí)例結(jié)果,我們看到了輸入框里輸入數(shù)據(jù),當(dāng)你切換到別的組件的時(shí)候,原來組件的數(shù)據(jù)不會(huì)被保存,所以內(nèi)置組件可以包裹我們的動(dòng)態(tài)組件,會(huì)將往期的組件進(jìn)行緩存,而不是銷毀,他會(huì)把切換回去的組件緩存起來,做到保留組件狀態(tài)。
實(shí)例代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<title>組件之間的傳遞</title>
</head>
<body>
<div id="app">
<h1>小小閑置網(wǎng)</h1>
<input type="radio" name="tab" value="qiubite1" v-model="cfl">王者賬號(hào):
<img src="C:\Users\Administrator\Desktop\李寶\wangzhe.jpg" alt="" style="width: 30px;height:30px">
<input type="radio" name="tab" value="qiubite2" v-model="cfl">電話:
<input type="radio" name="tab" value="qiubite3" v-model="cfl">估價(jià):
<keep-alive><component v-bind:is="cfl"></component></keep-alive>
</component>
</div>
<template id="n1">
<div style="width: 200px;height: 200px;border: 2px solid rgb(100, 100, 196);">
<h1>賬號(hào)</h1>
<input type="text" placeholder="輸入你的賬號(hào):">
</div>
</template>
<template id="n2">
<div style="width: 200px;height: 200px;border: 2px solid rgb(100, 100, 196);">
<h1>電話</h1>
<input type="text" placeholder="輸入你的電話:">
</div>
</template>
<template id="n3">
<div style="width: 200px;height: 200px;border: 2px solid rgb(100, 100, 196);">
<h1>估價(jià):</h1>
<input type="text" placeholder="你心儀賣出的價(jià)格:">
</div>
</template>
<script src="http://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
<script>
var vm = new Vue({
el:"#app",
data:{cfl:"qiubite1"},
components:{
'qiubite1':{template:'#n1'},
'qiubite2':{template:'#n2'},
'qiubite3':{template:'#n3'},
}
})
</script>
</body>
</html>
運(yùn)行結(jié)果:

以上就是Vue動(dòng)態(tài)組件與內(nèi)置組件淺析講解的詳細(xì)內(nèi)容,更多關(guān)于Vue動(dòng)態(tài)組件與內(nèi)置組件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue.extend 登錄注冊(cè)模態(tài)框的實(shí)現(xiàn)
這篇文章主要介紹了Vue.extend 登錄注冊(cè)模態(tài)框的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
vue.js使用Element-ui實(shí)現(xiàn)導(dǎo)航菜單
這篇文章主要為大家詳細(xì)介紹了vue.js使用Element-ui中實(shí)現(xiàn)導(dǎo)航菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
關(guān)于element-ui?select?下拉框位置錯(cuò)亂問題解決
這篇文章主要介紹了關(guān)于element-ui?select?下拉框位置錯(cuò)亂問題解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue+ElementUI實(shí)現(xiàn)從后臺(tái)動(dòng)態(tài)填充下拉框的示例代碼
本文主要介紹了Vue+ElementUI實(shí)現(xiàn)從后臺(tái)動(dòng)態(tài)填充下拉框的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Vue3使用vant檢索組件van-search遇到的問題小結(jié)
當(dāng)清空按鈕與檢索按鈕同時(shí)居右時(shí),點(diǎn)擊clear清空按鈕事件時(shí)會(huì)同時(shí)觸發(fā)click-right-icon事件,這個(gè)時(shí)候容易觸發(fā)一系列問題,小編小編給大家分享Vue3使用vant檢索組件van-search遇到的問題小結(jié),感興趣的朋友一起看看吧2024-02-02
基于cropper.js封裝vue實(shí)現(xiàn)在線圖片裁剪組件功能
這篇文章主要介紹了基于cropper.js封裝vue實(shí)現(xiàn)在線圖片裁剪組件功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03
import.meta.glob() 如何導(dǎo)入多個(gè)目錄下的資源(最新推薦)
import.meta.glob() 其實(shí)不僅能接收一個(gè)字符串,還可以接收一個(gè)字符串?dāng)?shù)組,就是匹配多個(gè)位置,本文給大家介紹import.meta.glob() 如何導(dǎo)入多個(gè)目錄下的資源,感興趣的朋友一起看看吧2023-11-11
如何用electron把vue項(xiàng)目打包為桌面應(yīng)用exe文件
這篇文章主要介紹了如何用electron把vue項(xiàng)目打包為桌面應(yīng)用exe文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
Vue實(shí)現(xiàn)自定義字段導(dǎo)出EXCEL的示例代碼
這篇文章主要介紹了Vue實(shí)現(xiàn)自定義字段導(dǎo)出EXCEL的示例代碼,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08

