美文网首页前端Vue专辑前端vue总结
vue循环实现复用较高组件

vue循环实现复用较高组件

作者: 你好赵大宝 | 来源:发表于2019-12-26 16:32 被阅读0次

    v-for的基本用法

    三种基本功能:迭代数组、迭代对象、迭代整数
    详细的例子和语法介绍可以查看菜鸟
    vue.js循环语句https://www.runoob.com/vue2/vue-loop.html
    下面针对这三种基本功能在现在常用的应用进行简单总结:

    迭代数组:site in sites

    虽然在菜鸟中,使用了

    v-for="site in sites"
    //省略其他语句
    sites: 
    [
      { name: 'Runoob' },
      { name: 'Google' },
      { name: 'Taobao' }
     ]
    

    的语法,但是在实际应用中,Google Chrome浏览器会显示异常:不推荐使用没有初始化的变量,虽然显示异常后仍会正常工作,但是为了保证程序或系统的稳定性和鲁棒性,尽量少的异常是必须的。因此,所有用法最好统一为:

    v-for="(site,index) in sites" :key="index"
    //这里的index是索引,用来标定不同数组元素,避免出现重复
    

    这样可以很好的避免出现初始化变量异常。

    迭代对象:value in object

    在菜鸟中使用了

    v-for="value in object"
    //省略其他语句
    object:{
      name:"big han",
      url:"http://www.runoob.com",
      slogan:"hello! runoob"
    }
    

    依然会产生变量未初始化的异常,当然,菜鸟中也有相应的解决方式:提供第二个参数为键名

    <div id="app">
      <ul>
        <li v-for="(value, key) in object">
        {{ key }} : {{ value }}
        </li>
      </ul>
    </div>
    

    注意:这里没有在v-for语句之后声明键名,没有出现

    :key="..."
    

    虽然很多人都知道,在不使用索引值的情况下,声明键名与否并不重要,但是在实际应用中,未进行浏览器设置或没有在代码中声明的,浏览器会报异常,所以这里建议依然像我们之前的做法,声明索引。
    然后是使用索引的情况:提供第三个参数为索引

    <div id="app">
      <ul>
        <li v-for="(value, key, index) in object">
         {{ index }}. {{ key }} : {{ value }}
        </li>
      </ul>
    </div>
    

    以上有三种方式使用v-for迭代对象:

    object: {
    name: '菜鸟教程',
    url: 'http://www.runoob.com',
    slogan: '学的不仅是技术,更是梦想!'
    }

    1. 一个参数:value

    菜鸟教程
    http://www.runoob.com
    学的不仅是技术,更是梦想!

    2. 两个参数:value,key

    name : 菜鸟教程
    url : http://www.runoob.com
    slogan : 学的不仅是技术,更是梦想!

    3. 三个参数:value,key,index

    0.name : 菜鸟教程
    1.url : http://www.runoob.com
    2.slogan : 学的不仅是技术,更是梦想!

    迭代整数:n in 9

    菜鸟提供用法如下:

    <div id="app">
      <ul>
        <li v-for="n in 10">
         {{ n }}
        </li>
      </ul>
    </div>
    

    这个用法是没有异常的,在实际应用中,只有已知循环的数量,才会循环固定次数。一般在界面美化中使用

    相关文章

      网友评论

        本文标题:vue循环实现复用较高组件

        本文链接:https://www.haomeiwen.com/subject/azbgnctx.html