问题描述
为了更好的封装组件,和让整个程序看起来更友好和规范一些,我准备将每个组件需要传递的信息都通过来ComponentData封装
如,有个组件为BaseTable:
props: {
ComponentData: {
tableconfgName: "",
sql: "",
addflag: true,
editflag: true,
delflag: true
}
},
父组件中通过:
<BaseTable :ComponentData="basetable"/>
basetable: {
tableconfgName: "",
delflag: true,
sql: ""
}
来给组件传递,但组件不能获得相关信息,而且我通过组件的watch方法也尝试过,不能监听父组件给组件传值
watch: {
"ComponentData.sql": function(n, o) {
console.log(n);
}
}
请教各位大神有无更好的方法,因为我写的功能很复杂,一个页面中会用到大量的子定义组件,父子组件会涉及到大量的参数传递,如果不能很好的规划传参信息,程序代码很混乱。
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
今天封装组件也遇到了和你一样的问题,我自己想到了一个解决方法,就是通过computed再定义一个对象,用来合并父组件传进来的值和默认值,我之前那遇到的问题是在props里面table对象定义了很多的默认值,父组件要是不传值就用默认值,要是传值了部分值,所有的默认值都被替换掉了,这不是我想要的,我想要的是传了值就替换,不传的保留我原来的默认值,所以想到了这个办法