data的值 如何初始化vue_如何把vue中state的值赋值给data
我在created中派遣的mutation,然后改变我的初始化statestate(初始值):mutation(改变state):action(调用接口):在created生命周期中派遣:通过mapState拿到改变后的state:这个是我的data:!我希望当我的页面加载完成defaultdata的值是state的值?试了好多都不行,大家有什么好办法吗?我觉得可以这样// ...computed
我在created中派遣的mutation,然后改变我的初始化state
state(初始值):
mutation(改变state):
action(调用接口):
在created生命周期中派遣:
通过mapState拿到改变后的state:
这个是我的data:!
我希望当我的页面加载完成defaultdata的值是state的值?试了好多都不行,大家有什么好办法吗?
我觉得可以这样
// ...
computed () {
defaultData () {
return {
SDcard: this.$store.state.alarmInput.actionList.SDcard,
Trlparam: this.$store.state.alarmInput.Trlparam
}
}
}
// ...
我不明白为什么要执着于
data
,实际上data和computed的值最终都会是该vue实例的成员属性,这样只要在computed中返回就可以了
或许非要这样的话,可以在computed中返回,然后watch computed中的属性,然后在watcher中改变this.defaultData?
或许还可以在父组件中传递props到该组件中,当然这也并不是
data中的属性
.
重点是
data
与
props
及
computed
,还有vuex中的state,本身在程序中代表的含义就不一样,如果说想实现的功能非得是在data中包裹返回state中的属性,我会觉得这个设计不合理
重新审题之后
看到说是希望data中的默认值与state中的值一致?意思是,不随state的改变而改变吗?
这倒是可以做到
data () {
var p1 = this.$store.state.xxx.p1
var p2 = this.$store.state.xxx.p2
return {
defaultData: {
p1: p1,
p2: p2
}
}
}
不知道这样做符合你的预期吗
vuex的值放在computed之中使用
通过mapState拿到改变后的state 是在 computed 属性里吗?
那么获取的计算属性名称就是 SDcard 和 Trlparam,没有办法让他们叫 defaultData 的。
如果一定要和 state 中的初始值一样,可以使用 lodash 中的 clone,直接在 created 中 clone this.$state
更多推荐
所有评论(0)