TomVista
V2EX  ›  问与答

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

  •  
  •   TomVista · Aug 28, 2019 · 2789 views
    This topic created in 2476 days ago, the information mentioned may be changed or developed.

    运行起来

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

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

    我也是才看到这种写法,应该是从 python 之类的语言得到的灵感,语法糖嘛
    madao
        9
    madao  
       Aug 28, 2019   ❤️ 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)
    }
    }
    ```
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1093 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 22:59 · PVG 06:59 · LAX 15:59 · JFK 18:59
    ♥ Do have faith in what you're doing.