创新互联百度小程序教程:循环

  • 循环
    • s-for
      • 默认情况
      • 简写
    • trackBy

    循环

    s-for

    通过循环渲染列表是常见的场景,在元素上作用 s-for 指令,我们可以渲染一个列表。

    创新互联建站是一家专业提供衡山企业网站建设,专注与成都网站设计、网站建设、HTML5建站、小程序制作等业务。10年已为衡山众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

    默认情况

    默认不写情况下,下标索引是为 index,数组当前变量名默认为 item。

    代码示例

    • SWAN
    • JS
     
     
     
    1. {{index}}: {{item.name}}
     
     
     
    1. // for-demo.js
    2. Page({
    3. data: {
    4. persons: [
    5. {name: 'Curry'},
    6. {name: 'Thompson'},
    7. {name: 'Durant'},
    8. {name: 'Green'},
    9. {name: 'Cousins'}
    10. ]
    11. }
    12. });

    简写

    通过简写的方式,指定下标索引和数组当前变量名。

    代码示例

    • SWAN
     
     
     
    1. {{index}}: {{p.name}}

    也可以通过使用 s-for-index 来指定下标索引,s-for-item 来指定数组当前变量名。

    • SWAN
     
     
     
    1. {{idx}}: {{p.name}}

    trackBy

    如果列表中的项目会动态地增加、删除,并且希望列表中的项目保持自己的特征和状态(例如 input 中的输入内容),需要在 s-for 指令声明中指定 trackBy。

    trackBy 后跟的值可以是 s-for 的 array 中 item 本身或者其属性(如 item.id),该值需要是列表中唯一的字符串或数字,且不能动态改变。

    当数据更新触发重新渲染时,将自动跟踪项的变更,原先列表内的项位置会移动,新添加的项会被渲染,以确保组件保持自身的状态,并且省去一部分重新渲染带来的消耗。

    代码示例

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

    • SWAN
    • JS
     
     
     
     
     
     
    1. Page({
    2. data: {
    3. list: [1, 2, 3, 4]
    4. },
    5. delete() {
    6. const list = this.data.list
    7. console.log('当前删除项目 id', list.splice(0, 1)[0])
    8. this.setData({list})
    9. }
    10. })

    Tips

    当循环渲染自定义组件列表时,不指定 trackBy 而动态增删数组中的元素,可能会导致调用错误的 attached detached 生命周期函数。

    当前题目:创新互联百度小程序教程:循环
    网页地址:http://www.shufengxianlan.com/qtweb/news32/38782.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联