源自: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。