1.简单举一个v-for列表渲染例子

<template><div><ul><li v-for="item in items">{{item}}</li></ul></div>
</template>
<script>exportdefault{data () {return{items:['html','css','javascript']}},}</script>

2.修改items数组中的值

  • demo  :  https://run.iviewui.com/9OwDCfZE
  • 结果发现数组中的值虽然发生了变化,但是watch中并没有监听到数组的变化,并且DOM也没有发生改变;
1 methods:{2 hadnleupdata(){3         this.items[1]='python';4         console.log(this.items)5 }6 },7 watch:{8 items(val){9         console.log('watch中items值为:',val)10 }11     }

3. 如何解决并让DOM更新?

  1. 利用 $forceUpdate 强制更新

    • 在使用Vue框架开发时,在函数中改变了页面中的某个值,在函数中查看是修改成功了,但在页面中没有及时刷新改变后的值,就可以使用此方法;
      • demo : https://run.iviewui.com/pgRGJ9CL
      • 通过这种方式发现DOM虽然发生了改变,但是watch中的监听事件并没有触发;
1 methods:{2 hadnleupdata(){3         this.items[1]='python';4         console.log(this.items)5         this.$forceUpdate();6 }7 },8 watch:{9 items(val){10         console.log('watch中items值为:',val)11 }12     }

  2. Vue.js 包装了被观察数组的变异方法,故它们能触发视图更新。被包装常用的方法有:

  • push()
  • pop()
  • shift()
  • unshift()
  • splice()
  • sort( )
demo : https://run.iviewui.com/GnL4vAZA
通过这种方式发现 DOM 发生了改变并且 watch 监听事件也被触发了;
1 methods:{2 hadnleupdata(){3         this.items.splice(1,1,'python')4         console.log(this.items)5 }6 },7 watch:{8 items(val){9         console.log('watch中items值为:',val)10 }11     }

4. 结合iview提供的Table组件使用案例:https://run.iviewui.com/oM49rQ7H

    

转载于:https://www.cnblogs.com/yuzhongyu/p/10443606.html

v-for列表渲染之数组变动检测相关推荐

  1. 【Vue教程四】条件渲染、列表渲染、数组更新

    一.条件渲染:[v-if][v-show] 1.v-if 指令用于条件性地渲染一块内容. 1.1.在元素中使用 v-if 指令: <body><div id="app&qu ...

  2. vue.js循环for(列表渲染)详解

    vue.js循环for(列表渲染)详解 一.总结 一句话总结: v-for <ul id="example-1"> <li v-for="item in ...

  3. Vue - 条件渲染与列表渲染

    条件渲染 v-if v-if会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建. <div id="app"><h3 v-if="ok&q ...

  4. Vue.js入门学习--列表渲染--v-for遍历数组生成元素(四)

    完整案列demo: <html><head><title>列表渲染--v-for遍历数组生成元素</title><script src=" ...

  5. 【Vue】基础系列(五)列表渲染v-for | key的原理 | 数组 | 对象 | 删除替换 | 过滤与排序

    1. 列表显示 v-for指令 用于展示列表数据 语法:v-for="(item, index) in xxx" :key="yyy" 可遍历:数组.对象.字符 ...

  6. json vue 对象转数组_vue.js基于v-for实现批量渲染 Json数组对象列表数据示例

    本文实例讲述了vue.js基于v-for实现批量渲染 json数组对象列表数据.分享给大家供大家参考,具体如下: vuejs的出现减轻了对dom的直接操作,同时它提供的 v-for 渲染列表数据也给我 ...

  7. 【微信小程序】二维数组列表渲染

    微信小程序官方文档主要是一维数组列表渲染的案例: Page({items: [{message: 'foo',},{message: 'bar'}] }) <view wx:for=" ...

  8. JSX列表渲染(五)——4种写法:基本写法 遍历写法 map遍历写法(常用-加工处理数组的每一项数据,最后形成一个新的数组) 列表遍历可以直接写到表达式中

    JSX列表渲染--4种写法:基本写法 & 遍历写法 & map遍历写法(常用-加工处理数组的每一项数据,最后形成一个新的数组) & 列表遍历可以直接写到表达式中 渲染多个元素 ...

  9. Vue.js 第二天: 列表渲染

    用v-for 把一个数组对应为一组元素 我们用 v-for 指令根据一组数组的选项列表进行渲染.v-for 指令需要使用 item in items 形式的特殊语法,items 是源数据数组并且 it ...

最新文章

  1. append函数_高质量python代码:考虑用生成器来改写直接返回列表的函数
  2. Win10安装玩Ubuntu19.04后,bios和grub页面都没有Windows启动项,无法进入Windows
  3. 5.慎重选择删除元素的方法
  4. SpringBoot_日志-日志框架分类和选择
  5. Java基础之HashMap流程分析
  6. vue.js:利用vue.js做一个抽奖小游戏
  7. 《零基础看得懂的C语言入门教程 》——(八)了解基本数组还不是那么简单
  8. 转:Kafka、RabbitMQ、RocketMQ等消息中间件的介绍和对比
  9. POJ :3614-Sunscreen
  10. 递归神经网络(Recursive Neural Network, RNN)
  11. 计算机桌面锁定了没设密码怎么解锁,电脑桌面锁屏怎么设置,电脑怎么给手机解锁...
  12. Ubuntu系列硬盘安装
  13. AC自动机(Aho-Corasick automation)(转)
  14. Q104:怎么用ray tracing画基于磨边楔形的“花环(Rosette)”
  15. miracast和乐播投屏_【当贝市场】Windows 10 Mircast投屏到电视教程
  16. Visual C++ 6.0 Processor Pack 编译xvidcore1.1.0
  17. matlab时域采样与频域采样,实验二:时域采样与频域采样.doc
  18. python中take函数_Python Pandas Series.take()用法及代码示例
  19. Hopping Rabbit---牛客
  20. gnuplot画图技巧总结

热门文章

  1. python 下载或者直接读取csv文件
  2. Windows下C++多线程同步与互斥简单运用-转
  3. [Java] 蓝桥杯BASIC-13 基础练习 数列排序
  4. Xcode误删Images.xcassets文件夹的恢复办法(Assets.xcassets)
  5. java 串口 rxtx_【Java】基于RXTX的Java串口通信
  6. oracle聚合函数rank()的用法和一些体会
  7. C#面向对象10 继承
  8. PHP面向对象重要知识点----------第一部分
  9. 阿里内核月报2017年01月
  10. Firefox上打开的标签页太多怎么办?