原文末尾问题 文末有github链接
问题(待解决): 在vue的编码规范中有如下声明:
传递过于复杂的对象使得我们不能够清楚的知道哪些属性或方法被自定义组件使用,这使得代码难以重构和维护。
所以, 我考虑Table.vue
传递李明的字符串, edit()
方法修改如下:
edit(index) {
this.selectedList = JSON.stringify(this.students[index]);
this.toggleEdit();
}
然后再在Crud.vue
中解析成对象, 修改如下:
updated() {
this.list = JSON.parse(this.modifyList);
}
此时点击一行数据进行编辑, 浏览器会进入死循环, 卡死。 解析放到beforeupdate
beforeupdate() {
this.list = JSON.parse(this.modifyList);
}
点击编辑, 循坏100来此报错:
哪位大神能详尽的解释一下么? updated
状态下进行解析生成新对象, 组件Crud.vue
又会进入beforeUpdate
=> updated
状态又成新解析的对象, 无限循环直到内存溢出, 那么为什么解析放在updated
中回掉浏览器器会直接卡死, 而beforeUpdated
中递归会中止并报错?
换个思路吧
使用 Prop 传递数据
事件监听接收数据
$on
$emit