vue2.0使用动态组件实现tab切换效果(vue-cli)

复制代码
<template>
    <div>
      <div>#动态组件实现tab切换效果#</div><br><br><br>
        <nav>
          <a href="javascript:void(0);" @click="toggleTabs(first);">{{first}}</a>
                <a href="javascript:void(0);" @click="toggleTabs(second);">{{second}}</a>
                <a href="javascript:void(0);" @click="toggleTabs(third);">{{third}}</a>
        </nav>

      //动态地绑定到它的 is 特性,我们让多个组件可以使用同一个挂载点,并动态切换。如果把切换出去的组件保留在内存中,可以保留它的状态或避免重新渲染。为此可以添加一个 keep-alive 指令参数 
      <first :is="currentView" keep-alive></first>
      </div>
</template>

<script  type="text/ecmascript-6">
//导入子组件
import first from 'components/first';
import second from 'components/second';
import third from 'components/third';

export default {
        data () {
             return {
                 first: "first", //导航栏文本1
                second: "second", //导航栏文本2
                third: "third", //导航栏文本3
                currentView: 'first', //默认选中first子组件
             };
         },
         components: { 
             first,
             second,
             third
         },
         methods: {
             toggleTabs (tabText) {
                 this.currentView = tabText;
             }
         }
    }
</script>

//使用sass
<style lang="scss">
    nav{
        width:600px;
        background:#eeeeee;
        padding:0 10px;

      & a{
        text-decoration: none;
        color:#000;
        display: inline-block;
        width:150px;
        text-align:center;
        background:#aaaaaa;
        padding:10px;
      }
    } 
</style>
复制代码

子组件

first.vue

<template>
    <div>我是第一个子组件</div>
</template>
<script type="text/ecmascript-6">
</script>
<style lang="scss"></style>

second.vue

<template>
    <div>我是第二个子组件</div>
</template>
<script type="text/ecmascript-6">
</script>
<style lang="scss"></style>

third.vue

<template>
    <div>我是第三个子组件</div>
</template>
<script type="text/ecmascript-6">
</script>
<style lang="scss"></style>

 

posted @   pearl007  阅读(18770)  评论(10编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示