运行后更新路由
我的项目是需要登陆后,通过服务器返回的路由列表修改路由,无法再运行时就更新路由。
第一:能不能在model中或者运行后更新routes呢,再重新渲染界面?
第二:动态增加路由时,component是路径, 通过import函数无法加载组件,报错显示 cannot find module。
@sorrycc 谢谢你的回复,我已经想到办法了.我将我的思路写出来希望能帮到需要的人
1.我把oldRender作为全局变量存放起来,第一次调用oldRender,当登录后我在重新调用oldRender()更新路由,实现了渲染后更新路由
export function render(oldRender) {
//设置默认oldRender();
window.oldRender = (routes) => {
authRoutes = routes;
console.log('触发render');
oldRender();
};
if (window.oldRender) {
window.oldRender();
}
2.利用第一个问题,结合patchRoutes就可以更新
3.我先将在路由中写一个临时挂载的路由,设置一个key用户找到它,在patchRoutes中获取组件,再删除挂载的临时路由
{
path: '/',
name: '临时挂载点',
routeKey: 'tmp',
routes: [
....
]
},
authRoutes = routes这一步没看懂,authRoutes 不是一个方法么?
@sorrycc 谢谢你的回复,我已经想到办法了.我将我的思路写出来希望能帮到需要的人
1.我把oldRender作为全局变量存放起来,第一次调用oldRender,当登录后我在重新调用oldRender()更新路由,实现了渲染后更新路由
export function render(oldRender) { //设置默认oldRender(); window.oldRender = (routes) => { authRoutes = routes; console.log('触发render'); oldRender(); }; if (window.oldRender) { window.oldRender(); }2.利用第一个问题,结合patchRoutes就可以更新
3.我先将在路由中写一个临时挂载的路由,设置一个key用户找到它,在patchRoutes中获取组件,再删除挂载的临时路由
{ path: '/', name: '临时挂载点', routeKey: 'tmp', routes: [ .... ] },
不能不能贴一段这段实现的完整代码
@sorrycc 谢谢你的回复,我已经想到办法了.我将我的思路写出来希望能帮到需要的人
1.我把oldRender作为全局变量存放起来,第一次调用oldRender,当登录后我在重新调用oldRender()更新路由,实现了渲染后更新路由
export function render(oldRender) { //设置默认oldRender(); window.oldRender = (routes) => { authRoutes = routes; console.log('触发render'); oldRender(); }; if (window.oldRender) { window.oldRender(); }2.利用第一个问题,结合patchRoutes就可以更新
3.我先将在路由中写一个临时挂载的路由,设置一个key用户找到它,在patchRoutes中获取组件,再删除挂载的临时路由
{ path: '/', name: '临时挂载点', routeKey: 'tmp', routes: [ .... ] },
如果全局定义window.render我在尝试的时候发现似乎不行
我也解决了 虽然不太好 但是感觉还行
我也解决了 虽然不太好 但是感觉还行
咋解决的啊,我用上面的方法,登录后render,patchRoutes并不会触发
Most helpful comment
@sorrycc 谢谢你的回复,我已经想到办法了.我将我的思路写出来希望能帮到需要的人
1.我把oldRender作为全局变量存放起来,第一次调用oldRender,当登录后我在重新调用oldRender()更新路由,实现了渲染后更新路由
2.利用第一个问题,结合patchRoutes就可以更新
3.我先将在路由中写一个临时挂载的路由,设置一个key用户找到它,在patchRoutes中获取组件,再删除挂载的临时路由