V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
TomVista
V2EX  ›  问与答

谁给我讲讲 v-for="(i,index) in 2",有点懵

  •  
  •   TomVista · 2019-08-28 15:34:01 +08:00 · 2288 次点击
    这是一个创建于 1674 天前的主题,其中的信息可能已经有所发展或是发生改变。

    运行起来

    i=1,index=0
    -----------
    i=2,index=1
    
    9 条回复    2019-08-28 16:16:43 +08:00
    pipixia
        1
    pipixia  
       2019-08-28 15:39:02 +08:00 via Android   ❤️ 1
    懵在哪?
    TomVista
        2
    TomVista  
    OP
       2019-08-28 15:40:49 +08:00
    @pipixia 数值 2 可以遍历吗? 可以的话,也应该是一次循环吧···我从来没见过这么写的··,他竟然可以运行,我现在就是这么个想法:dog
    hoyixi
        3
    hoyixi  
       2019-08-28 15:41:13 +08:00
    v-for="(i,index) in ['a','b','c']"
    yangshan010
        4
    yangshan010  
       2019-08-28 15:42:49 +08:00   ❤️ 1
    v-for
    预期:Array | Object | number | string | Iterable (2.6 新增)

    vue 官网。
    TomVista
        5
    TomVista  
    OP
       2019-08-28 15:45:09 +08:00
    @yangshan010 收到,感谢人形 apidoc
    pipixia
        6
    pipixia  
       2019-08-28 15:45:48 +08:00 via Android   ❤️ 1
    @TomVista 官网有遍历整数的例子
    marcong95
        7
    marcong95  
       2019-08-28 15:47:27 +08:00
    v-for 遍历 number 的话是从 1 开始的
    Biwood
        8
    Biwood  
       2019-08-28 15:49:18 +08:00
    https://vuejs.org/v2/guide/list.html#v-for-with-a-Range

    我也是才看到这种写法,应该是从 python 之类的语言得到的灵感,语法糖嘛
    madao
        9
    madao  
       2019-08-28 16:16:43 +08:00   ❤️ 1
    这个实现在这里: https://github.com/vuejs/vue/blob/6fe07ebf5ab3fea1860c59fe7cdd2ec1b760f9b0/src/core/instance/render-helpers/render-list.js

    具体实现内容如下:

    ```
    if (typeof val === 'number') {
    ret = new Array(val)
    for (i = 0; i < val; i++) {
    ret[i] = render(i + 1, i)
    }
    }
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4841 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:55 · PVG 17:55 · LAX 02:55 · JFK 05:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.