virtualDOM을 realDOM에 반영하기

아래 내용들은 src/simsimReactDOM.js에 작성되어 있습니다.

const simsimReactDom = {
  render : (virtualDom, realDom) => {
      // 이곳에 가상돔을 리얼돔에 반영하는 코드를 작성합니다.
  }
};

export default simsimReactDom;

render함수 내부를 채우기 전에 snabbdom을 초기화 해줘야 합니다. snabbdom의 모듈들은 일종의 플러그인이라고 생각하면 됩니다.

import { init } from 'snabbdom/build/package/init';
import { propsModule } from 'snabbdom/build/package/modules/props';

// snabbdom에 props모듈을 붙여 초기화함.
// 이 모듈 덕분에 props를 가진 가상돔을 만들 수 있게 되었음.
const reconcile = init([propsModule]);

const simsimReactDom = {
    render: (virtualDom, realDom) => {
        reconcile(realDom, virtualDom);
    },
};

export default simsimReactDom;

reconcile 함수를 실행하면 realDom에 virtualDom을 반영합니다.(patch)

자 이제 우리가 만든 react dom으로 여지껏 만든 virtual DOM을 실제로 화면에 렌더링 해볼까요?

화면에 정상적으로 렌더링이 되었습니다.

Last updated

Was this helpful?