2019-08-30 - Vue - 动态组件 & 异步组件

源自:https://cn.vuejs.org/v2/guide/index.html

动态组件

<!-- 失活的组件将会被缓存!--> (keep-alive

<keep-alive>

            <component v-bind:is="currentTabComponent"></component>

</keep-alive>

异步组件

Vue 只有在这个组件需要被渲染的时候才会触发该工厂函数,且会把结果缓存起来供未来重渲染。

new Vue({

  // ...

  components: {

    'my-component': () => import('./my-async-component')

  }

})

处理加载状态

const AsyncComponent = ()=> ({

          // 需要加载的组件 (应该是一个 `Promise` 对象)

         component: import('./MyComponent.vue'),

          // 异步组件加载时使用的组件  

        loading: LoadingComponent,

          // 加载失败时使用的组件  

        error: ErrorComponent,

          // 展示加载时组件的延时时间。默认值是 200 (毫秒)  

        delay: 200,

          // 如果提供了超时时间且组件加载也超时了,  // 则使用加载失败时使用的组件。默认值是:`Infinity`  

        timeout: 3000

})

注意:

$refs 只会在组件渲染完成之后生效,并且它们不是响应式的。这仅作为一个用于直接操作子组件的“逃生舱”——你应该避免在模板或计算属性中访问 $refs。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 2,241评论 0 6
  • 动态组件 有的时候,在不同组件之间进行动态切换是非常有用的,比如在一个多标签的界面里: is 上述内容可以通过 V...
    前端菜篮子阅读 748评论 0 1
  • 此文基于官方文档,里面部分例子有改动,加上了一些自己的理解 什么是组件? 组件(Component)是 Vue.j...
    陆志均阅读 3,864评论 5 14
  • 什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装...
    youins阅读 9,528评论 0 13
  • 三、组件 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML元素,封装可重用...
    小山居阅读 630评论 0 1