前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue列表渲染(数组和对象)

vue列表渲染(数组和对象)

作者头像
十月梦想
发布2018-10-09 15:18:12
3.2K0
发布2018-10-09 15:18:12
举报
文章被收录于专栏:十月梦想十月梦想

简单看一下列表渲染(数组列表)

数组列表渲染

代码语言:javascript
复制
    < div id="app">
        <div v-for="(item,index) in list">
            {{item}}-----{{index}}
        </div>
    </div>
    <script>
        var app=new Vue({
            el:"#app",
            data:{
                list:["吃饭","上午","睡觉","运动"]
            }
        })

使用for循环list,每一项赋值给item,还可以传递一个index索引!

我们知道这个vue是mvvm模型,数据改变,视图层就改变但是通过实例改变app.list[3]="新设置",发现数据改变了视图层无法改变,那么如何保持数据和视图层改变呢?有三种方式

第一种,重新改变list的数据,进行直接添加

代码语言:javascript
复制
app.list=["吃饭","上午","睡觉","运动","新增数据"]

第二种可以使用数组的七中变异方式

数组的七种变异方式

  • push()
  • pop()
  • shift()
  • unshift()
  • splice()
  • sort()
  • reverse() 变异方法实现
代码语言:javascript
复制
app.push("新数据");

对象数组渲染

代码语言:javascript
复制
<div id="app">
    <div v-for="item of obj">
        {{item}}
    </div>
</div>
<script>
    var app=new Vue({
        el:"#app",
        data:{
            obj:{
                name:"test",
                age:18,
                sex:"男"
            }
        }
    })
</script>

当然对象也可以像数组一样传递参数,可以传递三个参数(item,key,index)

代码语言:javascript
复制
<div v-for="(item,key,index) of obj">
    {{key}}:{{item}}-------{{index}}
</div>

那么我们使用类似于数组的方式给对象新增一项

代码语言:javascript
复制
app.obj.adress="北京"

输出app.obj发现数据被添加了,但是视图层没有被渲染!

那么该如何保持同时改变呢?

类似于数组,使用重新赋值结构

代码语言:javascript
复制
obj:{
    name:"test",
    age:18,
    sex:"男",
    adress:"北京"
}

发现也能可以重新渲染到页面!那么还有什么简单的方式修改吗?当然有可以使用set方法!下一篇来说一下set方式修改列表渲染(数组和对象)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-9-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数组列表渲染
  • 对象数组渲染
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档