1、computed、props中的vuex值在data中不更新
computed: {
...mapGetters([
'intepriv'
])
},
data() {
const query = this.$route.query
return {
isIntepriv: this.intepriv
}
}
假设intepriv的初始值为false,此处的isIntepriv永远为false. props中的值用computed即可动态更新
2、组件复用
有时候我们的组件需要复用,并且我们希望组建重新渲染,此时我们需要加key
<bill key="a"></bill>
<bill key="b"></bill>
3、同时监听多个值的变化
使用场景:比如我们需要等公司companyOpts、应用appOpts、广告位adPositionOpts等都加载完成再去调用api,常用语下拉选项
例:这里我们监听tableData和appOpts的变化,并且当2个值都有数据再去执行逻辑
// 监听app有值并且table有数据
computed: {
opts() {
return {
companyOpts: $store.getters.companyOpts,
appOpts: this.$store.getters.appOpts,
adPositionOpts: this.adPositionOpts
}
}
},
watch: {
opts(o) {
if (o.companyOpts.length && o.appOpts.length && o.adPositionOpts.length) {
// 逻辑
}
}
}
4、地址栏传参数字转字符串的问题
这里跳转到editposition页之后,第一次获取的new_created为number类型,刷新页面后new_created为string类型
this.$router.push({
name:'editposition',
query: { pkg_name: data.name, new_created: 1 }
})
5、Vue 不能检测以下数组的变动
- 当你利用索引直接设置一个数组项时,例如:
vm.items[indexOfItem] = newValue - 当你修改数组的长度时,例如:
vm.items.length = newLength - 参考官网