詳解vue2.0 使用動態組件實現 Tab 標籤頁轉場效果(vue-cli),vue2.0vue-cli

來源:互聯網
上載者:User

詳解vue2.0 使用動態組件實現 Tab 標籤頁轉場效果(vue-cli),vue2.0vue-cli

在 vue 中,實現 Tab 切換主要有三種方式:使用動態組件,使用 vue-router 路由,使用第三方外掛程式。

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

先看下最終實現的效果,結構比較簡單,頂部的三個 Tab 標籤用於切換,內容地區分別為三個子組件。

效果預覽

關鍵代碼及分析如下:

<template>// 每一個 tab 綁定了一個點擊事件,傳入的參數對應著 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 特性動態綁定子組件// keep-alive 將切換出去的組件保留在記憶體中<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 用於標識當前觸發的子組件  }; }, components: { // 聲明子組件  prince,  rose,  fox }, methods: {  toggleTab: function(tab) {   this.currentTab = tab; // tab 為當前觸發標籤頁的組件名  } }}</script>

使用動態組件實現 Tab 標籤頁切換的基本過程可以概括為:

  • 在父組件中定義一個主 tab 標籤頁,用於切換,同時為每個 tab 綁定點擊事件,傳入該 tab 的子組件名,最後引入並定義子組件
  • 子組件中是各 tab 標籤頁的內容
  • 使用 is 特性動態切換子組件,使用 kee-alive 緩衝

is 特性一般用於原生 HTML 元素擴充

舉個栗子,一般在 ul 標籤中只能嵌套 li 標籤,但是我們現在想在 ul 標籤內使用自訂群組件 v-li。

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

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

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

這也就是為什麼利用 is 特性可以實現動態切換組件的效果。

keep-alive 指令可以將切換出去的組件保留在記憶體中,可以保留它的狀態或避免重新渲染。

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.