如何使用哈巴狗起反应?

And*_*hno 11 reactjs pug

如何使用哈巴狗和在一起反应?

就像是

btn = ({click, text})->
    a.pug.btn(target='blank' on-click=click) #{text} 
Run Code Online (Sandbox Code Playgroud)

小智 7

我看到这个问题已经很老了,但如果您仍在寻找答案,那么有一个针对babel的官方插件,该插件将pug转换为jsx:https : //github.com/pugjs/babel-plugin-transform-react -pug

例如:

export default const ReactComponent = props => pug`
  .wrapper
    if props.shouldShowGreeting
      p.greeting Hello World!

    button(onClick=props.notify) Click Me
`
Run Code Online (Sandbox Code Playgroud)

将提供与此类似的内容:

export default const ReactComponent = props => (
  <div className="wrapper">
    {props.shouldShowGreeting && (
      <p className="greeting">Hello World</p>
    )}
    <button onClick={props.notify}>Click Me</button>
  </div>
)
Run Code Online (Sandbox Code Playgroud)

存储库中还有更多示例。


小智 -6

将 html 预处理器与模板库一起使用是个坏主意,DOM 是实时构建的,JSX 更适合。无论如何,在将 pug 编译成 HTML 后,您可以使用angerlySetInnerHTML 属性来渲染它。

  • 它不是关于使用 html 预处理器和模板。它与 CoffeeScript 或 LiveScript 中的哈巴狗具有相同的语义。 (3认同)
  • pug 在到达浏览器之前会被转换为 js。 (3认同)