找公司做网站要注意什么,中国建设网官方网站6,网站开发带后台,字体在线生成器Vue的核心是数据与视图的双向绑定#xff0c;当我们修改数组时#xff0c;Vue会检测到数据变化#xff0c;所以用v-for渲染的视图也会立即更新。Vue包含了一组观察数组变异的方法#xff0c;使用他们改变数组也会触发视图更新。push()pop()shift()unshift()splice()sort()r…Vue的核心是数据与视图的双向绑定当我们修改数组时Vue会检测到数据变化所以用v-for渲染的视图也会立即更新。Vue包含了一组观察数组变异的方法使用他们改变数组也会触发视图更新。push()pop()shift()unshift()splice()sort()reverse()比如以下例子{{ book.name }}JavaScript代码var app new Vue({el: #app,data:{books:[{ name: 《Vue.js实战》 },{ name: 《JavaScript语言精粹》 },{ name: 《JavaScript高级程序设计》 }]}});然后我再给数据books添加一项app.books.push({name: 《css解密》});使用上面的方法会改变原始数组当然也有些方法不会改变原数组例如filter()concat()slice()他们返回的是一个新数组在使用这些非变异方法时可以用新数组来替换原数组以下例子我们找出含有JavaScript关键词的数目例如书名{{ book.name }}作者{{ book.author }}var app new Vue({el: #app,data:{books:[{name: 《Vue.js实战》,author: 梁灏},{name: 《JavaScript语言精粹》,author: Douglas Crockford},{name: 《JavaScript高级程序设计》,author: Nicholas C.Zakas}]}});app.books app.books.filter(function (item){return item.name.match(/JavaScript/);});渲染的结果中第一项《Vue.js实战》被过滤到了只显示书名中含有JavaScript的选项。Vue在检测到数组变化时并不是直接重新渲染整个列表而是最大化的复用DOM元素。替换的数组中含有相同元素的项不会被重新渲染因此可以大胆地用新数组来替换旧数组不用担心新能问题。需要注意的是以下变动的数组中Vue是不能检测到的也不会触发视图更新通过索引直接设置项比如app.books[3] {…}。修改数组长度比如app.books.length 1。解决第一个问题可以用两种方法实现同样的效果第一种是使用Vue内置的set方法Vue.set(app.books, 3, {name: 《css解密》,author: [希] Lea Verou});如果是在webpack中使用组件化的方式默认是没有导入Vue的这时可以使用$set例如this.$set(app.books, 3, {name: 《css解密》,author: [希] Lea Verou});//这里的this指向的就是当前组件实例即app。在非webpack模式下也可以用$set方法例如app.$set(…)另一种方法app.books.splice(3, 1, {name: 《css解密》,author: [希] Lea Verou});第二个问题也可以直接用splice来解决app.books.splice(1);