项目场景:
vue应用, 想着在路由变化的时候, 有一个加载的过程, 正好有用到element-UI, 直接使用其中的Loading组件
问题描述
思路是: 监听到路由变化时, 开启Loading, 当前路由组件获取到数据后, 关闭Loading.
开启Loading时, 是通过在<router-view
>上的id获取开启Loading的target选项.
结果在路由变化时, 页面并没有效果. 检查页面, 没有渲染, 但也没报错
<router-view
:searchWords="keywords"
@changeResult="result = $event"
@finish="finish"
id="search_router_view"
></router-view>
Loading.service({
target: window.document.querySelector("#search_router_view"),
spinner: "el-icon-loading",
text: "拼命加载中...",
background: "rgba(0,0,0,0.5)",
});
原因分析:
想不出合理的原因, 但是怀疑是<router-view
>的锅, 于是考虑在<router-view
>外加一层盒子, 然后就真的好了
解决方案:
<div id="search_router_view">
<router-view
:searchWords="keywords"
@changeResult="result = $event"
@finish="finish"
></router-view>
</div>