# 高阶组件

advanced-vue-component-design(Vue高级组件设计) (opens new window) https://github.com/vuejs/vue/issues/6201

https://github.com/jackmellis/vue-hoc/blob/master/packages/vue-hoc/README.md

https://github.com/posva/vue-promised

https://jsfiddle.net/o7yvL2jd/23/

https://jsfiddle.net/eu81273/o7yvL2jd/

# 课程列表

  1. 构建受控组件--【Building Controlled Components】,
  2. 自定义受控组件绑定--【Customizing Controlled Component Bindings】,
  3. 包装外部库--【Wrapping External Libraries】,
  4. 封装行为:全局事件--【Encapsulating Behavior: Global Events】,
  5. 封装行为:直接 DOM 操作--【Encapsulating Behavior: Direct DOM Manipulation】,
  6. 封装行为:门户--【Encapsulating Behavior: Portals】,
  7. 封装行为:重用门户--【Encapsulating Behavior: Reusing Portals】,
  8. 使用插槽注入内容--【Injecting Content Using Slots】,
  9. 使用插槽和类合并的原生样式按钮--【Native-Style Buttons Using Slots and Class Merging】,
  10. 使用组合扩展组件--【Extending Components Using Composition】,
  11. 使用作用域槽向上传递数据--【Passing Data Up Using Scoped Slots】,
  12. 渲染函数 101--【Render Functions 101】,
  13. 渲染函数和组件--【Render Functions and Components】,
  14. 渲染函数和子项--【Render Functions and Children】,
  15. 渲染函数和插槽--【Render Functions and Slots】,
  16. 数据提供程序组件--【Data Provider Components】,
  17. 无渲染组件入门--【Getting Started with Renderless Components】,
  18. 传递数据道具--【Passing Data Props】,
  19. 传递动作道具--【Passing Action Props】,
  20. 传递绑定道具--【Passing Binding Props】,
  21. 使用函数作为绑定道具--【Using Functions as Binding Props】,
  22. 使用无渲染组件实现替代布局--【Implementing Alternate Layouts with Renderless Components】,
  23. 配置无渲染组件--【Configuring Renderless Components】,
  24. 包装无渲染组件--【Wrapping Renderless Components】,
  25. 构建元素查询组件--【Building an Element Query Component】,
  26. 复合组件和提供/注入--【Compound Components and Provide/Inject】,
  27. 构建复合可排序列表组件--【Building a Compound Sortable List Component】,
  28. 构建搜索选择:数据绑定--【Building a Search Select: Data Bindings】,
  29. 构建搜索选择:过滤--【Building a Search Select: Filtering】,
  30. 构建搜索选择:焦点管理--【Building a Search Select: Focus Management】,
  31. 构建搜索选择:使其受控--【Building a Search Select: Making It Controlled】,
  32. 构建搜索选择:键盘导航--【Building a Search Select: Keyboard Navigation】,
  33. 构建搜索选择:单击外部组件--【Building a Search Select: Click Outside Component】,
  34. 构建搜索选择:集成 Popper.js--【Building a Search Select: Integrating Popper.js】