provide和inject可以用于爷孙之间传值,provide有两种传值方式。
具体可以看https://www.cnblogs.com/web-learn/p/15606062.html
接下来说一下这个传值存在的坑,以下是我写的传值代码。
provide() {
return {
childrenData: this.childrenClassify
};
}
inject: ['childrenData'],
但是我打印出来的值是我this.childrenClassify的初始值,而不是我通过mounted请求之后的值。
后面发现是由于生命周期的执行顺序导致的数据为空。provide的执行顺序比created和mounted先执行,所以就导致mounted还没完成请求就把数据传给了孙组件。因为数据异步问题,孙组件接收到的自然是空的数据。下面是解决办法