zoukankan      html  css  js  c++  java
  • Vue 列表渲染

    我们写的页面需要记录图书的列表

    1 // 我们用普通方法写
    2 
    3 <ol>
    4    <li>《撒哈拉的故事》</li>
    5    <li>《活着》</li>
    6    <li>《围城》</li>
    7    <li>《哈利波特》</li>
    8 </ol>

    浏览器显示:

    我们在用vue提供的列表渲染来完成这个例子

     1 <ol id="books-list">
     2     <li v-for="site in sites">
     3       {{site.book}}
     4     </li>
     5   </ol>
     6   <script>
     7    new Vue({
     8      el:"#books-list",
     9      data:{
    10        sites:[
    11          {book:"《撒哈拉的故事》"},
    12          {book:"《活着》"},
    13          {book:"《围城》"},
    14          {book:"《哈利波特》"}
    16        ]
    18      }
    19    })
    20   </script>

    浏览器显示:

     在 v-for 块中,我们拥有对父作用域属性的完全访问权限v-for 还支持一个可选的第二个参数为当前项的索引。

    我们拥有对父作用域属性的完全访问权限?首先来解释一下这句话:

     1 <ol id="books-list">
     2     <li v-for="(site, index) in sites">
     3         // 在这里就是vue的子作用域在这里我们可以取到父作用域的 site以及index
     4       {{site.book}}
     5     </li>
     6   </ol>
     7   <script>
     8    new Vue({
     9      el:"#books-list",
    10      data:{
    11        sites:[
    12          {book:"《撒哈拉的故事》"},
    13          {book:"《活着》"},
    14          {book:"《围城》"},
    15          {book:"《哈利波特》"}
    16        
    17        ]
    18      
    19      }
    20    })
    21   </script>

    (首先上述内容有可能有误,欢迎指正)

    而index就是 第二个参数---索引值

    <ul id="books-list">
        <li v-for="(site, index) in sites">
          {{index}}-{{site.book}}
        </li>
      </ul>
      <script>
       new Vue({
         el:"#books-list",
         data:{
           sites:[
             {book:"《撒哈拉的故事》"},
             {book:"《活着》"},
             {book:"《围城》"},
             {book:"《哈利波特》"}
           
           ]
         
         }
       })
      </script>

    (为了更容易看出index的功能我把ol换成了 ul标签)

    浏览器显示:

    当然我们还可以用of代替in 因为这是最接近JavaScript迭代器的语法

     <li v-for="(site, index) of sites">




    一个对象的object


     1 <ul id="v-for-object">
     2     <li v-for="value in object">
     3       {{author}}-{{value}}
     4     </li>
     5  </ul>
     6  <script>
     7    new Vue({
     8      el:"#v-for-object",
     9      data:{
    10        author:"作者",
    11        object:{
    12           "三毛":"《撒哈拉的故事》",
    13           "余华":"《活着》",
    14           "钱钟书":"《围城》",
    15           "J·K·罗琳":"《哈利波特》" 
    16        }     
    17      }
    18    })

    显示如下:

    要把作者的名字也打印出来,需要添加第二个参数 key

      <li v-for="(value, key) in object">
            {{author}}-{{key}}-{{value}}
      </li>

    显示如下
    但第三个参数是什么呢?没错!就是索引,最终的页面

     
  • 相关阅读:
    数据库中Schema(模式)概念的理解
    debug --- 使用Eclipse
    pgsql 相关函数
    浏览器显示页面排版错误
    jqury 属性
    节点互换需要克隆
    mysql数据库允许远程访问
    request与response的编码和解码
    文本和属性 radio,checkbox,select
    js 和 JQuery 获取iframe的父子值
  • 原文地址:https://www.cnblogs.com/qjuly/p/8510529.html
Copyright © 2011-2022 走看看