- 原因: 通过imort引入的配置参数,对象,处于父组件层作用域,tab切换的时候,这个配置对象并没有做初始化,通过v-bind传递的属性,在子组件中读取的时候,读取的是传递的表达式,最终组件是要被编译成render函数,而在子组件中的watch,观察的是这个配置参数,例如
tableConfig.total
,但是每次切换,该配置参数对象又没有变化,所以在子组件中无法触发watch的回调 - 解决方案:(尽量将动态的数据和静态的数据分开)
- 在子组件中给watch加上immediate:true, 每次组件创建就会立即执行回调函数,实现传值的初始化
- 不采用import或者require的形式引入配置参数
- 每次父组件创建的时候初始化一下,配置参数,但是会有一个问题,就是会多触发一次watch回调(配置参数初始化时候的回调)