SkateJSWeb 组件规范功能抽象

联合创作 · 2023-09-23 07:43

SkateJS 是一个 Web 组件库,旨在提供扩充 Web 组件规范能力,它重点关注功能渲染管道、清理 attribute/property 语义和较小的占用空间。

抽象能力包括:

  • 生成跨框架兼容组件。

  • 通过 props 或原生类型,抽象出常见的 attribute/property 语义,例如属性 reflection 和 coercion。

  • 添加一些生命周期回调以响应 prop 更新、渲染,以及管理内部组件状态的方法。

  • 提供一组基本的 mixin,它们 hook 渲染器,如 @skatejs/renderer-preact

使用 Skate 与 Preact 可以这样写 Web 组件:

// @jsx h

import { props, withComponent } from 'skatejs';
import withPreact from '@skatejs/renderer-preact';
import { h } from 'preact';

class WithPreact extends withComponent(withPreact()) {
  static get props() {
    return {
      name: props.string // String could be used also to define the prop type
    };
  }
  render({ name }) {
    return <span>Hello, {name}!</span>;
  }
}

customElements.define('with-preact', WithPreact);
浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报