zoukankan      html  css  js  c++  java
  • Vue稍微高级一点的选项卡—动态组件

     1 <template>
     2   <div id="app" class="app">
     3     <ul class="tabUl">
     4       <li @click="toggle(index, tab.view)" v-for="(tab, index) in tabs" :class="{active: active == index}">
     5           {{tab.type}}
     6       </li>
     7     </ul>
     8     <div class="wrapper">
     9       <!--每次切换组件都会重新渲染,无法保留组件上的数据。这时可以使用 keep-alive 将组件保留在内存中,避免重新渲染-->
    10       <keep-alive>
    11         <component :is="currentView"></component>
    12       </keep-alive>        
    13     </div>
    14   </div>
    15 </template>
    16 
    17 <script>
    18   import Tabone from './tabs/Tab-one.vue'
    19   import Tabtwo from './tabs/Tab-two.vue'
    20   import Tabthree from './tabs/Tab-three.vue'
    21 
    22 export default {
    23   name: 'app',
    24   data () {
    25     return {
    26        currentView: "Tabone",
    27        active: 0,
    28        tabs: [
    29          {
    30            type: '新闻',
    31            view: "Tabone"
    32          },
    33          {
    34            type: '音乐',
    35            view: "Tabtwo"
    36          },
    37          {
    38            type: '娱乐',
    39            view: "Tabthree"
    40          }
    41        ]
    42     }
    43   },
    44   methods: {
    45     toggle(i, v) {
    46         this.active = i;
    47         this.currentView = v;
    48     }
    49   },
    50   components: {
    51     "Tabone": Tabone,
    52     "Tabtwo": Tabtwo,
    53     "Tabthree": Tabthree
    54   }
    55 }
    56 </script>
    57 
    58 <style>
    59 
    60 .app{
    61   position: absolute;
    62   top: 100px;
    63   left: 50%;
    64   transform: translateX(-50%);
    65 }
    66 .tabUl::after{
    67   display: block;
    68   content: "";
    69   clear: both;
    70 }
    71 .active {
    72   color: red;
    73   border-bottom: 1px solid red;
    74 }
    75 ul li {
    76   padding: 0 15px;
    77   float:left;
    78   list-style: none;
    79 }
    80 .wrapper{
    81    500px;
    82   border: 1px solid orangered;
    83   text-align: center;
    84   height: 250px;
    85   line-height: 250px
    86 }
    87 </style>
  • 相关阅读:
    Redis下载地址
    form序列化
    隐藏GET请求URL参数
    IntelliJ IDEA中显示方法说明快键键
    Myeclipse2014在线安装SVN插件
    Spring Cloud Gateway 集成 Sentinel 网关限流(2)
    Spring Cloud Gateway 集成 Sentinel 网关限流(1)
    Spring Cloud Gateway 集成 Nacos 实现请求负载
    微服务网关之Spring Cloud Gateway
    Nacos 的安装
  • 原文地址:https://www.cnblogs.com/tian-long/p/8420924.html
Copyright © 2011-2022 走看看