如何使用vue-loader处理远程加载的vue组件文件的字符串?
我现在通过axios 从api接口拉取了一个 vue文件的内容过来,然后向渲染成一个组件对象传递给resolve
如下代码 resolve({}) 里面只是简单写了一个template
那么如何处理一个response.data的内容为组件对象呢?要借助vue-loader吗
var routes_config = [{
path: '/sider',
component_url: 'http://localhost/?path=manage.layouts.sider'
}, {
path: '/user',
component_url: 'http://localhost/?path=manage.layouts.default'
}]
// 将全局路由进行注册
var routes = {
routes: (function() {
var list = new Array()
for (let i in routes_config) {
list.push({
path: routes_config[i].path,
// 异步组件
component: function(resolve, reject) {
// 异步请求组件配置
axios.get(routes_config[i].component_url).then(response => {
resolve({
// response.data = "<h1>User</h1>"
template: response.data
})
})
}
})
}
return list
})()
}
const router = new VueRouter(routes)
new Vue({
router: router,
render: h => h(App),
}).$mount('#app');
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
感觉和httpVueLoader差不多的效果,可以看看源码咋整的
感谢 @toesbieya 看了下httpVueLoader的代码
将其做了如下修改
然后在main.js中如下使用
这样就会直接加载远程的URL组件,也就是读取远程的.vue文件的内容,然后不需要使用webpack的vue-loader插件就可以进行编译,完美