3、ECharts子组件读取父组件中Axios数据:
将ECharts地图的显示封装为一个组件,会遇到下列问题
(1)在options选项中,不能直接使用this,需要在定义options之前将this转存为that、_this等。
(2)父子组件的生命周期顺序:
父组件beforeCreate —> 父组件created —> 父组件beforeMount —> 子组件beforeCreate —>
子组件created —> 子组件beforeMount —> 子组件mounted —> 父组件Mounted
(3)若子组件的自定义数据(来自于父组件)需要在父组件axios调取接口后确定下来,则父组件
在axios调取接口成功后获得的数据已经无法再传递给子组件。
解决方案:
A .在子组件中监听父组件传递过来的数据mapData,监听到该数据的变化后,调取渲染地
图的方法。(使用此种方法,子组件的mounted钩子函数中就可以不调用渲染地图的方法了)
B .在父组件中对子组件的使用时,判断对应的数据是否为空,当确定数据不为空时(从axios
接口中获取了有效数据)重新渲染子组件。
<china-map v-if=“currentData.length!==0” :map-data=“currentData”></china-map>