Catalogue
在不同组件之间进行动态切换是非常有用的,如tab页切换
可以通过 Vue 的 <component>
元素加一个特殊的 is
特性来实现:
1 | <!-- 组件会在 `currentTabComponent` 改变时改变 --> |
在上述示例中,currentTabComponent
可以包括
- 已注册组件的名字,或
- 一个组件的选项对象
keep-alive
每次切换组件的时候,Vue 都创建了一个新的 currentTabComponent
实例,当有需求要组件实例能够被在它们第一次被创建的时候缓存下来时,可以用一个 <keep-alive>
元素将其动态组件包裹起来。
1 | <keep-alive> |
异步组件
- Vue 允许你以一个工厂函数的方式定义你的组件,这个工厂函数会异步解析你的组件定义。Vue 只有在这个组件需要被渲染的时候才会触发该工厂函数,且会把结果缓存起来供未来重渲染。
1 | Vue.component('async-example', function (resolve, reject) { |
resolve回调函数参数是组件定义
调用
reject(reason)
来表示加载失败。
1 | Vue.component('async-webpack-example', function (resolve) { |
- 你也可以在工厂函数中返回一个
Promise
,所以把 webpack 2 和 ES2015 语法加在一起,我们可以写成这样:
1 | Vue.component( |
- 当使用局部注册的时候,你也可以直接提供一个返回
Promise
的函数:
1 | new Vue({ |