Lumaktaw sa nilalaman

Mga Utility

Ang mga helper na ginagamit ng WebComponent sa loob nito, na na-export para magamit mo mismo. I-import mula sa utils entry point o sa bawat module nang hiwalay:

import { serialize, getKebabCase } from 'web-component-base/utils'
// or
import { serialize } from 'web-component-base/utils/serialize.js'

Tingnan ito nang live: binubuo ng Just the parts demo ↗ ang isang component mula sa mga helper na ito nang hindi nagpapalawig sa base class.

Kino-convert ang kebab-case na attribute name tungo sa katugmang camelCase na prop key nito.

ParameterType
kebabstringang attribute name
ibinabalikstringang prop key
getCamelCase('max-count') // 'maxCount'

Kino-convert ang camelCase na prop key tungo sa katugmang kebab-case na attribute name nito. Ito ang mapping na ginagamit ng observedAttributes.

ParameterType
strstringang prop key
ibinabalikstringang attribute name
getKebabCase('maxCount') // 'max-count'

Ang magkakasunod na capital letters ay itinuturing na iisang salita, kaya ang parseHTML ay nagiging parse-html.

Kino-convert ang value tungo sa attribute string form nito.

ParameterType
valueanyang value na sise-serialize
ibinabalikstringang attribute value

Ang mga numero, boolean, at object ay dumadaan sa JSON.stringify; ang mga string at lahat ng iba pa ay dumadaan nang hindi nagbabago.

Nagpa-parse ng attribute string pabalik sa value ng ibinigay na na-declare na type, ang kabaligtaran ng serialize().

ParameterType
valuestringang attribute value
typestring'boolean', 'number', 'object', 'undefined' o 'string'
ibinabalikanyang na-parse na value

Ang 'boolean' ay palaging nagbabalik ng true: mahigpit na HTML boolean-attribute semantics, kung saan totoo ang anumang present na value. Ang absence ay hinahawakan ng caller at hindi kailanman umaabot dito. Ang 'number', 'object', at 'undefined' ay gumagamit ng JSON.parse at nagtatapon ng error sa malformed na input; ang mga string ay dumadaan nang hindi nagbabago.

Bumubuo ng totoong DOM mula sa vnode tree.

ParameterType
treeanyisang vnode, isang array ng vnodes, o isang text value
ibinabalikNodeisang element, isang DocumentFragment, o isang text node

Ang array ay nagiging DocumentFragment; ang value na walang type ay nagiging text node. Ang mga props ay ina-apply gamit ang applyProp() at ang mga child ay ginagawa nang recursive.

Ina-apply ang isang solong vnode prop sa isang element, gamit ang panuntunang inilarawan sa html.

ParameterType
elElementang element na ia-a-apply-an ng prop
propstringang prop name ayon sa pagkakasulat sa vnode
valueanyang prop value

Ibinabahagi sa reconciler, kaya ang isang patched na element ay nakakakuha ng props gamit ang eksaktong parehong panuntunan tulad ng isang bagong likhang element.

Pinapagana ng mga ito ang in-place na re-render na inilarawan sa Template vs Render. Ang matching ay index-based at non-keyed.

Ini-reconcile ang mga anak ng isang parent node mula sa isang vnode list papunta sa isa pa, na pina-patch ang mga tugma sa lugar at tinatabas ang mga natira.

ParameterType
parentNodeang parent node na pinapatch-an
oldChildrenanyang nakaraang vnode children, o nakaraang tree
newChildrenanyang bagong vnode children, o bagong tree

Ini-reconcile ang isang solong node position. Muling ginagamit ang dom kapag tumugma ang vnode type, kung hindi ay pinapalitan ito.

ParameterType
parentNodeang parent node na pinapatch-an
domNode | nullang umiiral na node sa index na ito, kung mayroon
oldVnodeanyang vnode na gumawa ng dom, kung alam
newVnodeanyang vnode na ire-render