乐趣区

关于angular:动态懒加载组件解决方案

这是什么

  • 失常的应用, 是先申明组件, 而后在模板中引入组件, 这就导致了一个问题, 如果一个组件的应用次数非常少, 那么这个模块依然会把组件打包进去, 使得模块增大
  • 本我的项目先将组件当做失常标签写入, 而后应用两个装璜器, 一个为结构化懒加载指令, 一个为自定义表单控件指令用来帮助加载

须要前置常识

  • 结构型指令
  • 属性型指令
  • 自定义表白控件
  • ngModel 实现原理

实用版本

  • ng10(100%)
  • ng9(靠近 100%)

ng9 和 ng10 没太大改变, 所以 ng9 应该没什么问题

  • ng8(如果不能够须要依赖路由实现)
  • ng7 以下(须要依赖路由实现)

与 8 的路由实现形式不同, 然而总体是依赖路由实现的

成果

  • 靠近失常的开发只不过须要多个指令反对
  • 只在应用时, 会动静申请相干组件
  • input 完全相同
  • output 会变成 CustomEvent 类型, 值再 detail 属性中
  • 表单控件在逻辑上应该齐全一样

思路

  • 通过动静加载并创立的 web-component 元素, 实质上与一般标签齐全一样
  • 所以说他就是个元素, 无奈响应双向绑定, 须要通过指令来代替

input,select 等类型都是通过指令实现的双向绑定, 这也是本次组件的实现思路

  • 通过指令的直达, 在须要懒加载的组件中退出一个事件, 在初始化时发射事件, 值为这个组件的实例, 通过拿到实例, 将自定义表白控件相干的实现办法手动设置逻辑

代码地址

地址

退出移动版