웹 컴포넌트는 재사용할 수 있는 컴포넌트에 강한 캡슐화를 제공하는 반면, React는 DOM과 데이터를 동기화하는 선언적 라이브러리를 제공한다. 둘은 상호보완적이니 잘 사용해보자.
class HelloMessage extends React.Component {
render() {
return <div>Hello <x-search>{this.props.name}</x-search>!</div>;
}
}
⚠️ 주의 웹 컴포넌트는 강제성을 띄는 API를 열어놓는다.(예: video태그의 play(), pause()) 이러한 API에 접근하기 위해서 DOM노드에 ref를 걸어서 적용하고 랩핑하는 React 컴포넌트를 만들어서 사용하자.
function BrickFlipbox() {
return (
<brick-flipbox class="demo">
<div>front</div>
<div>back</div>
</brick-flipbox>
);
}
className ❌ ⇒ class O