美文网首页
Vue远端异步组件

Vue远端异步组件

作者: 小俊的世界 | 来源:发表于2021-06-11 17:59 被阅读0次

起因

项目现在作为产品化,模块越来越多,想尝试可以将一些包可以作为服务独立文件开发。
已经固定的组件可以抽离出项目,作为一个云端组件;一些基础的模块也可以抽离出项目;
这样的话,项目的整个编译的项目将会变得更快,同时可以更加有利于团队的开发,通过隔离文件的方式,将会更大的保证开发的功能彼此互不影响的。

异步组件

Vue.component('async-example', function(resolve, reject) {
  setTimeout(function() {
    // 向 `resolve` 回调传递组件定义
    resolve({
      render(h) {
        return h('div', '你好')
      }
    })
  }, 1000)
})

这里需要注意的是 resolve({template:"<div>hello world</div>"}) 这种的话, 需要运行在vue的esm版本中,而一般的情况下是使用的是 vue的runtime版本。在runtime版本下是需要使用render进行渲染的。

远端异步组件

为了更加贴进现实的使用场景,我将element-ui组件button的编译版本拉下来,并放在了static文件夹下的,利用axios进行异步请求,最终的使用的方式是:

Vue.component('async-example', function(resolve, reject) {
  axios.get('../../../static/button.js').then(res => {
    const com = eval(res.data).default
    resolve({
          render(h) {
            return h(com, '你好')
          }
    })
  })
})

最终呈现效果


image.png

相关文章

网友评论

      本文标题:Vue远端异步组件

      本文链接:https://www.haomeiwen.com/subject/oehveltx.html