vue计算属性⽆法监听到数组内部变化的解决⽅案
下拉框selectvue的计算属性
计算属性可以帮助我们简化代码,做到实时更新,不⽤再⾃⼰添加function去修改data。
⾸先看⼀下计算属性的基本写法(摘⾃官⽹)
var vm = new Vue({
el: '#demo',
data: {
firstName: 'Foo',
lastName: 'Bar'
python入门教程(非常详细)书},
computed: {
fullName: function () {接口与抽象类的区别博客
return this.firstName + ' ' + this.lastName
}
}perl脚本开头
})
这样我们在模版⾥这样引⼊computed属性就可以了,他的效果个data⼀样
<div id="demo">{{ fullName }}</div>
这样我们修改firstName或者lastName,fullName都会同步更新
这⾥我们主要不是讲这个,⽽是讲如果把 firstName和lastName放在⼀个数组⾥
⽐如这样[firstName ,lastName]
mysql 增删改查如果这时候修改数组中的⼀项会不会有相同的效果呢?
修改⼀下代码
var vm = new Vue({
el: '#demo',
data: {
nameArray:['Foo' ,'Bar']
},
computed: {
fullName: function () {
return this.nameArray[0] + ' ' + this.nameArray[1]
}
}
})
methods: {
change () {
this.nameArray[0] = '123'
}
触发change⽅法可见fullName并没有变化。原因可能是vue没有监听到数组 nameArray的长度变化。
此时我们可以采⽤splice让数组的长度有个变化,这时候vue就可以监听到了
this.nameArray.splice(0, 1, '123')
或者使⽤vue的$set⽅法
this.$set(this.nameArray, 0, '123')
还有⼀点要注意,就是如果这个计算属性没有使⽤过,也就是说页⾯中没有引⽤,也没有其他变量使⽤他,同样不会触发计算属性。⾄少,来个console打印⼀下也⾏
以上这篇vue计算属性⽆法监听到数组内部变化的解决⽅案就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
weighty的比较级和最高级

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。