编辑器系列—什么是插件

插件(Plugin)是指一种可以增强或扩展已有软件功能的组件或模块。它们通常是以独立的方式编写,可以被动态地添加到主应用程序中,从而提供额外的功能和特性。 —— ChatGPT

个人理解:插件是一个相对的名词,它必须有一个主体容器/应用,其他独立的组件以插入的形式扩展主体容器/应用。

在 Slate 中,插件是一等公民,连编辑器都是以插件的形式创建的,其中编辑器对象扮演着主体容器/应用的角色,提供核心功能,每个插件可以基于 Editor 提供的核心能力去拦截改写或扩展自己的功能/逻辑。

Angular 动态创建组件

有两种方式:视图动态渲染和组件动态创建(笔者拟自己拟的概念), 区别是前者的重心是使用 NgComponentOutlet 指令在视图模板中,后者的重心是使用 createComponent API 在组件内创建的

js 修改伪类元素的样式

这是一个骚操作…因为目前为止 js 还没有提供可以直接设置伪类的 API,但是程序界流传着这样一句话:任何解决不了的问题都可以引入一个第三方去解决

有一种思路是:

  1. js 添加自定义 style 属性
  2. css 中读取并使用该属性的值

Angular 指令组合 API—hostDirectives

原文在我的知乎:Angular hostDirective 详解

前言

最近有一个需求是动态创建组件,然后给其组件添加指令,当时可难坏了,因为 createComponent API 不支持绑定指令,所以我当时猜想是否可以在 @Component 注入或 @HostBindingDirective 绑定实现呢?找了很久,最终发现官方支持了这种,选择的是前者,Feature Issue 如下: