案例选项卡

案例:实现步骤

1. 实现静态UI效果

 用传统的方式实现标签结构和样式

2. 基于数据重构UI效果

将静态的结构和样式重构为基于Vue模板语法的形式 

处理事件绑定和js控制逻辑

3. 声明式编程

模板的结构和最终显示的效果基本一致

 

 

 

 

 HTML 结构

`
   <div id="app">
       <div class="tab">
           <!-- tab栏 -->
           <ul>
               <li class="active">apple</li>
               <li class="">orange</li>
               <li class="">lemon</li>
           </ul>
             <!-- 对应显示的图片 -->
           <div class="current"><img src="img/apple.png"></div>
           <div class=""><img src="img/orange.png"></div>
           <div class=""><img src="img/lemon.png"></div>
       </div>
   </div>


`

 提供的数据

         list: [{
                   id: 1,
                   title: 'apple',
                   path: 'img/apple.png'
              }, {
                   id: 2,
                   title: 'orange',
                   path: 'img/orange.png'
              }, {
                   id: 3,
                   title: 'lemon',
                   path: 'img/lemon.png'
              }]

 

 把数据渲染到页面

  • 把tab栏 中的数替换到页面上

    • 把 data 中 title 利用 v-for 循环渲染到页面上

    • 把 data 中 path利用 v-for 循环渲染到页面上

        <div id="app">
           <div class="tab">  
               <ul>
                     <!--  
                       1、绑定key的作用 提高Vue的性能
                       2、 key 需要是唯一的标识 所以需要使用id, 也可以使用index ,
    index 也是唯一的
                       3、 item 是 数组中对应的每一项  
                       4、 index 是 每一项的 索引
                   -->
                      <li :key='item.id' v-for='(item,index) in list'>{{item.title}}</li>
                 </ul>
                 <div  :key='item.id' v-for='(item, index) in list'>
                       <!-- : 是 v-bind 的简写   绑定属性使用 v-bind -->
                       <img :src="item.path">
                 </div>
           </div>
       </div>
    <script>
       new  Vue({
           // 指定 操作元素 是 id 为app 的
           el: '#app',
               data: {
                   list: [{
                       id: 1,
                       title: 'apple',
                       path: 'img/apple.png'
                  }, {
                       id: 2,
                       title: 'orange',
                       path: 'img/orange.png'
                  }, {
                       id: 3,
                       title: 'lemon',
                       path: 'img/lemon.png'
                  }]
              }
      })

    </script>
  •  

posted @ 2020-11-26 23:31  清出于兰  阅读(104)  评论(0编辑  收藏  举报