< > 태그에 특정 purescript-halogen 구성 요소를 어떻게 렌더링 할 수 있습니까? DOM을 같이 생성태그에 purescript-halogen 구성 요소를 렌더링하는 방법
module Main where
import Prelude
import Control.Monad.Eff (Eff)
import Data.Maybe (Maybe(Nothing))
import CSS as C
import Halogen as H
import Halogen.Aff as HA
import Halogen.HTML as HH
import Halogen.HTML.CSS as HS
import Halogen.Query.HalogenM as HQ
import Halogen.VDom.Driver as HV
styles :: forall p i. HH.HTML p i
styles = HS.stylesheet $
C.select C.body $ C.margin C.nil C.nil C.nil C.nil
content :: forall p i. HH.HTML p i
content = HH.p_ [ HH.text "Test" ]
main :: Eff (HA.HalogenEffects()) Unit
main = HA.runHalogenAff $ HA.awaitBody >>= HV.runUI ui unit
where
ui = H.component { initialState : const unit
, render : const render
, eval : const $ HQ.halt "no query"
, receiver : const Nothing
}
render = HH.div_ [ styles, content ]
은 다음과 같다 :
<html>
<head>
<title>Test</title>
<script async="" type="text/javascript" src="main.js"></script>
</head>
<body>
<div>
<style type="text/css">
body { margin: 0 0 0 0 }
</style>
<p>
Test
</p>
</div>
</body>
</html>
예는 작동하지만있어서 할로겐 1.0.0 작성된
다음 예는 스타일 시트 및 HTML 바디에 단락 렌더링 specification에 스타일 요소는 "메타 데이터 내용이 필요한 위치", 즉 < 머리 > 요소 만 허용됩니다. 그래서 스타일 시트를 렌더링하고 싶습니다. 어떻게해야합니까?
완전히 정적 인 경우 왜 스타일 시트를 할로겐으로 렌더링합니까? 유연성을 필요로하는 경우 특정 요소에 스타일 속성을 렌더링 할 수 있습니다. 그러나 일반적으로 질문은 여전히 재미 있습니다 ... 나는
Purescript에서 정적 스타일 시트 렌더링시 다음과 같은 이점이 있습니다. PureScript의 모든 기능을 사용하여 스타일 시트를 어셈블 할 수 있으며 Sass 이하와 같은 다른 CSS 전처리 기가 필요하지 않습니다. 또한 할로겐 구성 요소가 스타일과 함께 저장되도록 코드를 모듈화 할 수 있습니다. ': hover'와 같은 가상 클래스 나 미디어 쿼리가 필요한 경우 스타일 속성을 사용하는 것은 옵션이 아닙니다. –