异步组件

异步组件

  • 异步组件也是一个函数, 只不过这个函数使用Promise,函数有一个返回值
<body>
     <div id="app">
          <async-com></async-com>
    </div>
</body>
<script>
var result = new Promise(function( resolve, reject ){
           resolve({
              template: '<div> 异步组件 </div>'
         })
})
Vue.component('AsyncCom',async () => {
              const tpl = await result.then( res => res)
              return tpl
         })
// Vue.component('async-com', function (resolve, reject) {
// setTimeout(function () {
// // 向 `resolve` 回调传递组件定义
// resolve({
// template: '<div>I am async!</div>'
// })
// }, 1000)
// })
     new Vue({
       el: '#app'
   })
</script>

异步组件的封装

const asyncCom = {
createAsyncCom({
    selector,
    asyncComName,
    methods,
    data,
    watch,
    computed,
    filters,
    directives,
    components,
    delay}){
var result = new Promise(function( resolve, reject ){
resolve({
    template: selector,
    methods,
    data,
    watch,
    computed,
    filters,
    directives,
    components
     })
})
setTimeout(()=>{
Vue.component(asyncComName,async () => {
        const tpl = await result.then( res => res)
        return tpl
     })
},delay)
       }
}
export default {
createAsyncCom: asyncCom.createAsyncCom
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值