<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="./vue.js"></script>
<!-- <script src="http://cdn.staticfile.org/vue/2.6.10/vue.common.dev.js"></script> -->
</head>
<body>
<div id="root">
<child-one v-if="type == 'child-one'"></child-one>
<child-two v-if="type == 'child-two'"></child-two>
<button @click="handleButtonClick">change</button>
</div>
<script type="text/javascript">
Vue.component("child-one", {
template: `<div>child-one</div>`
});
Vue.component("child-two", {
template: `<div>child-two</div>`
});
var vm = new Vue({
el: "#root",
data: {
type: "child-one"
},
methods: {
handleButtonClick: function() {
this.type = (this.type == "child-one" ? "child-two" : "child-one");
}
}
})
</script>
</body>
</html>
同樣的效果,使用動態組件(點擊切換會銷毀一個組件,創建另一個組件。很顯然,這樣對性能是有損耗的):
創新互聯擁有網站維護技術和項目管理團隊,建立的售前、實施和售后服務體系,為客戶提供定制化的成都網站制作、成都網站建設、外貿營銷網站建設、網站維護、四川服務器托管解決方案。為客戶網站安全和日常運維提供整體管家式外包優質服務。我們的網站維護服務覆蓋集團企業、上市公司、外企網站、商城系統網站開發、政府網站等各類型客戶群體,為全球1000多家企業提供全方位網站維護、服務器維護解決方案。<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="./vue.js"></script>
<!-- <script src="http://cdn.staticfile.org/vue/2.6.10/vue.common.dev.js"></script> -->
</head>
<body>
<div id="root">
//當然還可以用動態組件的方式(vue自帶的標簽,它指的就是一個動態組件)。動態組件的意思是:它會根據:is里面數據的變化自動加載不同的組件:
<component :is="type"></component>
<button @click="handleButtonClick">change</button>
</div>
<script type="text/javascript">
Vue.component("child-one", {
template: `<div>child-one</div>`
});
Vue.component("child-two", {
template: `<div>child-two</div>`
});
var vm = new Vue({
el: "#root",
data: {
type: "child-one"
},
methods: {
handleButtonClick: function() {
this.type = (this.type == "child-one" ? "child-two" : "child-one");
}
}
})
</script>
</body>
</html>
為了解決頻繁銷毀-創建,可以用v-once(因為這個v-once,在切換的時候會把要銷毀的這個放內存里了。也就是不需要創建了,直接從內存里拿)
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="./vue.js"></script>
<!-- <script src="http://cdn.staticfile.org/vue/2.6.10/vue.common.dev.js"></script> -->
</head>
<body>
<div id="root">
<!-- <child-one v-if="type == 'child-one'"></child-one>
<child-two v-if="type == 'child-two'"></child-two> -->
//當然還可以用動態組件的方式(vue自帶的標簽,它指的就是一個動態組件)。動態組件的意思是:它會根據:is里面數據的變化自動加載不同的組件:
<component :is="type"></component>
<button @click="handleButtonClick">change</button>
</div>
<script type="text/javascript">
Vue.component("child-one", {
template: `<div v-once>child-one</div>`
});
Vue.component("child-two", {
template: `<div v-once>child-two</div>`
});
var vm = new Vue({
el: "#root",
data: {
type: "child-one"
},
methods: {
handleButtonClick: function() {
this.type = (this.type == "child-one" ? "child-two" : "child-one");
}
}
})
</script>
</body>
</html>
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章名稱:動態組件與v-once指令-創新互聯
網站路徑:http://vcdvsql.cn/article16/gggdg.html
成都網站建設公司_創新互聯,為您提供App設計、企業建站、Google、動態網站、網頁設計公司、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯