A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

[AppleScript] 纯文本查看 复制代码
1. 迭代数组

    <ul>
      <li v-for="(item, i) in list">索引:{{i}} --- 姓名:{{item.name}} --- 年龄:{{item.age}}</li>
    </ul>

1. 迭代对象中的属性

    	<!-- 循环遍历对象身上的属性 -->
    
        <div v-for="(val, key, i) in userInfo">{{val}} --- {{key}} --- {{i}}</div>
    

1. 迭代数字

    <p v-for="i in 10">这是第 {{i}} 个P标签</p>
    



[AppleScript] 纯文本查看 复制代码
2.2.0+ 的版本里,当在组件中使用 v-for 时,key 现在是必须的。



当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “就地复用” 策略。如果数据项的顺序被改变,Vue将不是移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。



为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性。





Vue指令之v-if和v-show
一般来说,v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。因此,如果需要频繁切换 v-show 较好,如果在运行时条件不大可能改变 v-if 较好。
品牌管理案例添加新品牌删除品牌根据条件筛选品牌
  • 1.x 版本中的filterBy指令,在2.x中已经被废除:

filterBy - 指令
[AppleScript] 纯文本查看 复制代码
<tr v-for="item in list | filterBy searchName in 'name'">

  <td>{{item.id}}</td>

  <td>{{item.name}}</td>

  <td>{{item.ctime}}</td>

  <td>

    <a href="#" @click.prevent="del(item.id)">删除</a>

  </td>

</tr>
  • 筛选框绑定到 VM 实例中的 searchName 属性:
  • [AppleScript] 纯文本查看 复制代码
    <hr> 输入筛选名称:
    
    <input type="text" v-model="searchName">
  • 在使用 v-for 指令循环每一行数据的时候,不再直接 item in list,而是 in 一个 过滤的methods 方法,同时,把过滤条件searchName传递进去:
  • [AppleScript] 纯文本查看 复制代码
  • search 过滤方法中,使用 数组的 filter 方法进行过滤:
  • [AppleScript] 纯文本查看 复制代码
    search(name) {
    
      return this.list.filter(x => {
    
        return x.name.indexOf(name) != -1;
    
      });
    
    }
    


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马