国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解vue2.0 使用動態(tài)組件實現(xiàn) Tab 標(biāo)簽頁切換效果(vue-cli)

2019-11-19 15:36:33
字體:
供稿:網(wǎng)友

在 vue 中,實現(xiàn) Tab 切換主要有三種方式:使用動態(tài)組件,使用 vue-router 路由,使用第三方插件。

因為這次完成的功能只是簡單切換組件,再則覺得使用路由切換需要改變地址略微麻煩,所以使用的是動態(tài)組件實現(xiàn),如果是在大型應(yīng)用上,可能使用 vue-router 會方便一些。

先看下最終實現(xiàn)的效果,結(jié)構(gòu)比較簡單,頂部的三個 Tab 標(biāo)簽用于切換,內(nèi)容區(qū)域分別為三個子組件。

效果預(yù)覽

關(guān)鍵代碼及分析如下:

<template>// 每一個 tab 綁定了一個點擊事件,傳入的參數(shù)對應(yīng)著 tab 下的組件名<div class="tabs"> <div class="tab" @click="toggleTab('prince')"><a>小王子</a></div> <div class="tab" @click="toggleTab('rose')"><a>小玫瑰</a></div> <div class="tab" @click="toggleTab('fox')"><a>小狐貍</a></div></div>// 子組件,顯示不同的 tab// is 特性動態(tài)綁定子組件// keep-alive 將切換出去的組件保留在內(nèi)存中<prince :is="currentTab" keep-alive></prince></template><script>// 引入子組件import prince from './components/prince';import rose from './components/rose';import fox from './components/fox';export default { name: 'app', data () {  return {   currentTab: 'prince' // currentTab 用于標(biāo)識當(dāng)前觸發(fā)的子組件  }; }, components: { // 聲明子組件  prince,  rose,  fox }, methods: {  toggleTab: function(tab) {   this.currentTab = tab; // tab 為當(dāng)前觸發(fā)標(biāo)簽頁的組件名  } }}</script>

使用動態(tài)組件實現(xiàn) Tab 標(biāo)簽頁切換的基本過程可以概括為:

  • 在父組件中定義一個主 tab 標(biāo)簽頁,用于切換,同時為每個 tab 綁定點擊事件,傳入該 tab 的子組件名,最后引入并定義子組件
  • 子組件中是各 tab 標(biāo)簽頁的內(nèi)容
  • 使用 is 特性動態(tài)切換子組件,使用 kee-alive 緩存

is 特性一般用于原生 HTML 元素擴(kuò)展

舉個栗子,一般在 ul 標(biāo)簽中只能嵌套 li 標(biāo)簽,但是我們現(xiàn)在想在 ul 標(biāo)簽內(nèi)使用自定義組件 v-li。

<ul>  <v-li></v-li></ul>

而這樣寫肯定是不行的,這就需要用到 is 特性了。

<ul>  <li is="v-li"></li></ul>

這也就是為什么利用 is 特性可以實現(xiàn)動態(tài)切換組件的效果。

keep-alive 指令可以將切換出去的組件保留在內(nèi)存中,可以保留它的狀態(tài)或避免重新渲染。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 修水县| 柳州市| 土默特左旗| 涿州市| 高碑店市| 蒲城县| 屏南县| 赣州市| 佛坪县| 苍梧县| 宾川县| 调兵山市| 六盘水市| 贵州省| 三台县| 重庆市| 冕宁县| 海门市| 泽库县| 洪江市| 嘉禾县| 公安县| 扎赉特旗| 陇南市| 台安县| 三门峡市| 松阳县| 罗山县| 绥宁县| 贵德县| 屏东市| 龙海市| 建湖县| 灌南县| 武义县| 承德市| 象州县| 民乐县| 洛宁县| 延长县| 库尔勒市|