Web Components:属性观察、数据处理与生命周期管理
1. 属性观察
在当前 <time-format> 的实现中,元素渲染后,属性的进一步更改不会产生任何效果,这对于 HTML 元素来说有些奇怪。通常,当我们更改属性(如锚元素的 href )时,期望更改能立即可见,各种效果和动画都需要这种行为。
我们可以通过在 observedAttributes() 方法中提供属性列表来观察属性。该方法是静态的,因为它是元素所有实例的全局定义。对于这些观察的属性,当它们被修改时, attributeChangedCallback 方法会被调用。出于性能原因,它不会触发其他属性。
以下是一个新的 <time-format> 版本,当属性更改时会自动更新:
class TimeFormat extends HTMLElement {
render() {
let date = new Date(this.getAttribute('datetime')
|| Date.now());
this.innerHTML = new Intl.DateTimeFormat("default", {
year: this.getAttribute('year') || undefined,
month: this.getAttribute('month') ||
超级会员免费看
订阅专栏 解锁全文
1061

被折叠的 条评论
为什么被折叠?



