7动态组件和异步组件
动态组件和异步组件
  动态组件
    动态组件可通过<component>元素实现，该元素有个特殊属性is，用于切换不同的组件
    问题是如果反复切换组件，会导致反复渲染，从而影响性能
    <keep-alive>就是解决这个问题，用法只需要将动态组件包裹起来即可
  异步组件
    通常，我们会将一个应用切分成很多小的组件，而且我们希望，当用到时才去服务器异步加载，这样的组件就被称为异步组件
    Vue中通过defineAsyncComponent方法定义一个异步组件配置，然后可以通过component()注册全局异步组件，或者使用components配置选项注册局部的异步组件
    defineAsyncComponent此方法接受返回 Promise 的工厂函数
    从服务器检索组件定义后，应调用 Promise 的 resolve 回调,resolve里头就是正常的组件配置
    与Suspense一起使用
      异步组件在默认情况下是可挂起的
      这意味着如果它在父链中有一个 <Suspense>，它将被视为该 <Suspense> 的异步依赖。在这种情况下，加载状态将由 <Suspense> 控制，组件自身的加载、错误、延迟和超时选项都将被忽略
      异步组件可以选择退出 Suspense 控制，并可以在其选项中指定 suspensible:false，让组件始终控制自己的加载状态
  普通组件
    就是我们之前一直在用写的组件，比如之前用component()注册的组件