可以通过方法来定义数据吗?
export default {
data() {
return {
navData: [ /* ... */ ],
defaultData: this.deepClone(this.navData)
};
},
deepClone
是我定义的函数,但是这个方法无法传递给defaultData
可能是关于生命周期的?你能解释一下吗?感谢
答案 0 :(得分:0)
您不能这样做,因为您要返回的对象(对象navData
所属的对象)尚未创建,因此this.navData
不可用。
解决方案:首先使用navData
创建对象,然后添加defaultData
:
export default {
data() {
let data = {
navData: [ /* ... */ ],
};
data.defaultData = this.deepClone(data.navData);
return data;
},
另一个替代解决方案,可能更具惯用性,是稍后初始化defaultData
:
export default {
data() {
return {
navData: [ /* ... */ ],
defaultData: null;
}
},
mounted() {
this.defaultData = this.deepClone(this.navData);
},