不能像react的useEffect一样 在第二个参数中利用[]监听特定的状态的变化再重新渲染么?
或者说Vue里面有没有其他类似的功能?
有, watch 监听
watch: {
id (newVal, oldVal) {
//id 是data里面的数据,在这里可以打印,每当这个值变化之后 新旧值都有显示
},
}
watch就可以
watch:{
"$store.state.data": {
handler(val) {
console.log(val.id);
},
deep: true,
},
}
可以用组件计算属性绑定vuex中的状态
// 在单独构建的版本中辅助函数为 Vuex.mapState
import { mapState } from 'vuex'
export default {
// ...
computed: mapState({
// 箭头函数可使代码更简练
count: state => state.count,
// 传字符串参数 'count' 等同于 `state => state.count`
countAlias: 'count',
// 为了能够使用 `this` 获取局部状态,必须使用常规函数
countPlusLocalState (state) {
return state.count + this.localCount
}
})
}