详解Vue列表渲染

互联网 18-3-8
这次给大家带来详解Vue列表渲染,详解Vue列表渲染的注意事项有哪些,下面就是实战案例,一起来看一下。
example1.items = example1.items.filter(function (item) {  return item.message.match(/Foo/)})  <div id="example">    <div>      <button @click="concat()">concat</button>      <button @click="slice()">slice</button>      <button @click="filter()">filter</button>    </div>    <ul>      <li v-for="item in items">        {{item.list}}      </li>        </ul>  </div>  <script>    var example = new Vue({      el:"#example",      data:{        items:[          {list:5},          {list:6},          {list:7}                ],        addValue:{list:10}      },      methods:{        concat(){       this.items= this.items.concat(this.addValue)        },        slice(){        this.items = this.items.slice(1)        },        filter(){        this.items = this.items.filter(function(item,index,arr) {            return (index > 0)          })        }            }    })

以上操作并不会导致Vue丢弃现有DOM并重新渲染整个列表。Vue实现了一些智能启发式方法来最大化DOM元素重用,所以用一个含有相同元素的数组去替换原来的数组是非常高效的操作

注意事项

由于 JavaScript 的限制,Vue 不能检测以下变动的数组:

当你利用索引直接设置一个项时,例如:

vm.items[indexOfItem] = newValue

当你修改数组的长度时,例如:

vm.items.length = newLength

为了解决第一类问题,以下两种方式都可以实现和 vm.items[indexOfItem] = newValue 相同的效果,同时也将触发状态更新:

// Vue.set  Vue.set(example1.items, indexOfItem, newValue)  // Array.prototype.splice  example1.items.splice(indexOfItem, 1, newValue)

为了解决第二类问题,你可以使用 splice:

example1.items.splice(newLength)

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

相关阅读:

在HTML中如何用<a>标签编写个人收藏夹

HTML用img标签做图

HTML里的常见问题一

以上就是详解Vue列表渲染的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 详解
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:用<h1>和段落<p> 写一个三毛语录

相关资讯