为什么vue的异步组件加载顺序错误?

每次触发路由的时候,自动调用接口拉取远程的组件配置,进行渲染

 var routes_config = [
       {path:'/sider'},
       {path:'/user'}
       ]

// 将全局路由进行注册
var routes = {
    routes: (function() {
        var list = new Array()
        for (var i in routes_config) {
            list.push({
                path: routes_config[i].path,
                component: function(resolve, reject) {
                    resolve({
                        template: "<h1>"+i+ "</h1>"
                    })
                }
                // axios.get(routes_config[i].component_url).then(response => {
                //     resolve({
                //         template: response.data
                //     })
                // })
            })
        }
        return list
    })()
}
console.info(routes)
const router = new VueRouter(routes)
new Vue({
    router: router,
    render: h => h(App),
}).$mount('#app');

错误:
无论请求 /sider 还是/user 总是返回 i等于1

期望:
请求/user 返回 1,请求/sider 返回 0

阅读 2.9k
1 个回答

作用域的原因,把var 改为let

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题