Este é um estudo sobre web-component ou algo parecido para construir componentes reutilizáveis para Vue e React.
Ferramentas objetivo:
- Web component nativo
- StencilJS
- Lit (antigo polymer)
- Mitosis
- Button
- type: button, submit e reset
- adicionado customização de loading
- Input
- com value sendo indentificado pelos frameworks
- tipos de acordo com MDN
lit
: desenvolvimento de componentes com Litstencil
: desenvolvimento de componentes com Stencilvanilla-js
: desenvolvimento de componentes com web componentes 100% javascript puro
lit
: exemplos dos componentes desenvolvidos com Litstencil
: exemplos dos componentes desenvolvidos com Stencilvanilla-js
: exemplos dos componentes desenvolvidos com web componentes 100% javascript puro
- type:
button
,reset
,submit
- type button é o default aqui, em vez do submit
Funcionando:
@click
do VueonClick
do ReactaddEventListener("click"
do JS vanilla
Não funciona:
onclick
nativo no Elemento.
- type: todos os types que estão no MDN
Funcionando:
v-model
do VueonInput
do React (Exceto no Lit)
"Gambiarra":
onChange
do React: OonChange
não ouve o evento nativo de change, mesmo o emitindo de varias maneiras. Analisando o código da pra perceber que o react implementa uma propriedade__reactEventHandlers
onde esta possui uma funçãoonChange
.
Em andamento
- Validações de form como required
- Button
- button, submit e reset
- Input
- com atualização de value no framework
- validação de form - EM ANDAMENTO
- Plain Web Components | Web Components | Open WC
- Lit | Docs
- Mitosis | Docs | Tutorial | mitosis issue asked
- Stencil | Docs