Blazor Server에서 항상 동일한 출력을 하는구간에 대한 최적화 방안을 연구하였다.
그냥 문자열에 html코드 적어놓고써도 되지만, 절차적생성기능과 인텔리센스로 유효성을 검증받는 혜택을 누리려고 한다.
처음에는 선 계산한 RenderTreeBuilder의 정보를 가공할수 있지 않을까 했지만 아직 razor코드를 html문자열로 직렬화할 편리한 방법은 없는것으로 보이고, 노출된 정보를 활용해 재구성하는걸 직접만들어야 하는데, 그에 필요한 정보들또한 스펙상 추후 변경될 여지가 있다고 나와 넘겼다. 그냥 기다리다보면 구현해줄수도,
서치했을때 당장 된다는 내용은 정적인 cshtml에 대한것인데,
이리저리 알아보다보니 Blazor Component의 RenderFragment 처럼 cshtml코드에서도 @<tag></tag>형태로 람다식을 짜고 이를 문자열화 할수있었다.
다만 몇가지 귀찮은 제약조건이 있어서 위와같은 패턴으로 간소화시키는데 까다로움이 있었다.
razor파일과 cshtml에서 쓸수있는 html태그형 람다식은 형태는 매우 유사하나 서로 호환되지 않아 아무위치에서나 유연하게 작성하기는 어려울듯 싶다.
댓글 0