HyperHTMLElement
을 사용하는 경우 this.children
또는 this.querySelector()
을 사용하여 구성 요소의 내용에 액세스 할 수 있습니다. 이는 요소이기 때문에 가능합니다.hyper.Component를 사용할 때 DOM에 액세스
그러나 hyper.Component
을 사용하면 어떻게 비슷한 동작을 얻을 수 있습니까?
내가 염두에두고있는 가상의 예는 React docs입니다. https://facebook.github.io/react/docs/refs-and-the-dom.html - DOM에 특정 노드를 집중시키고 싶습니다.
은 내가이 문제를 해결하기 위해 노력하고 있어요 codepen 샌드 박스가 있습니다 https://codepen.io/asapach/pen/oGvdBd?editors=0010아이디어는 render()
이 같은 Node
마다 시간을 반환, 그래서 반환하기 전에 저장할 수 있으며 나중에 액세스를 this.node
같은 것입니다 :
render() {
this.node = this.html`
<div>
<input type="text" />
<input type="button" value="Focus the text input" onclick=${this} />
</div>
`;
return this.node;
}
하지만 내게는 보이지 않습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
'event.target'도 옵션으로 사용하려고 생각하고있었습니다. – DreamSonic
생성자에서'render()'를 호출하는 것이 실제로 좋은 생각이라고 생각하십니까? – DreamSonic
루트 노드를 참조해야하는 경우 조만간 렌더링을 호출해도 아무런 차이가 없습니다. hyperHTML 콘텐츠를 동일한 콘텐츠로 두 번 업데이트하는 데 드는 비용은 거의 0이므로 나중에 구성 요소가 다시 렌더링 되더라도 성능 문제는 발생하지 않습니다. 그러나 실제로 루트 노드에 직접 액세스해야하는 중요하지 않은 구성 요소의 경우 DOM을 사용하여 이벤트 기반 방식으로 작업하는 것을 선호합니다. 확실히 깨끗합니다. –